NEWS
author Lukas Stevens <mail@lukas-stevens.de>
Fri, 30 Sep 2022 12:44:21 +0200
changeset 76227 10945fc183cd
child 76228 3c46356d241f
permissions -rw-r--r--
added documentation about new order prover - new prover for partial and linear orders by Lukas Stevens and Tobias Nipkow - See NEWS for more context
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
76227
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     1
Isabelle NEWS -- history of user-relevant changes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     2
=================================================
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     3
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     4
(Note: Isabelle/jEdit shows a tree-view of the NEWS file in Sidekick.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     5
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     6
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     7
New in Isabelle2022 (October 2022)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     8
----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
     9
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    10
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    11
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    12
* The instantiation of schematic goals is now displayed explicitly as a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    13
list of variable assignments. This works for proof state output, and at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    14
the end of a toplevel proof. In rare situations, a proof command or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    15
proof method may violate the intended goal discipline, by not producing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    16
an instance of the original goal, but there is only a warning, no hard
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    17
error.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    18
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    19
* Session ROOT files support 'chapter_definition' entries (optional).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    20
This allows to associate additional information as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    21
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    22
  - "chapter_definition NAME (GROUPS)" to make all sessions that belong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    23
  to this chapter members of the given groups
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    24
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    25
  - "chapter_definition NAME description TEXT" to provide a description
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    26
  for presentation purposes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    27
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    28
* Old-style {* verbatim *} tokens have been discontinued (legacy feature
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    29
since Isabelle2019). INCOMPATIBILITY, use \<open>cartouche\<close> syntax instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    30
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    31
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    32
*** Isabelle/jEdit Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    33
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    34
* Command 'print_state' outputs a plain message, i.e. "writeln" instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    35
of "state". Thus it is displayed in the Output panel, even if the option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    36
"editor_output_state" is disabled.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    37
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    38
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    39
*** Isabelle/VSCode Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    40
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    41
* VSCodium, an open-source distribution of VSCode without MS telemetry,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    42
has been bundled with Isabelle as add-on component. The command-line
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    43
tool "isabelle vscode" automatically configures it as Isabelle/VSCode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    44
and starts the application. This includes special support for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    45
UTF-8-Isabelle encoding and the corresponding Isabelle fonts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    46
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    47
* Command-line tools "isabelle electron" and "isabelle node" provide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    48
access to the underlying technologies of VSCodium, for use in other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    49
applications. This essentially provides a freely programmable Chromium
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    50
browser engine that works uniformly on all platforms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    51
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    52
Example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    53
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    54
  URL="https://isabelle.in.tum.de" isabelle electron \
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    55
    --app="$(isabelle getenv -b ISABELLE_HOME)"/src/Tools/Electron/test
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    56
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    57
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    58
*** HTML/PDF presentation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    59
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    60
* Management of dependencies has become more robust and accurate,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    61
following the session build hierarchy, and the up-to-date notion of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    62
"isabelle build". Changed sessions and updated builds will cause new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    63
HTML presentation, when that is enabled eventually. Unchanged sessions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    64
retain their HTML output that is already present. Thus HTML presentation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    65
for basic sessions like "HOL" and "HOL-Analysis" is produced at most
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    66
once, as required by user sessions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    67
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    68
* HTML presentation no longer supports README.html, which was meant as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    69
add-on to the index.html of a session. Rare INCOMPATIBILITY, consider
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    70
using a separate theory "README" with Isabelle document markup/markdown.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    71
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    72
* ML files (and other auxiliary files) are presented with detailed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    73
hyperlinks, just like regular theory sources.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    74
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    75
* Support for external hyperlinks (URLs).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    76
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    77
* Support for internal hyperlinks to files that belong formally to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    78
presented session.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    79
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    80
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    81
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    82
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    83
* HOL record types: new simproc that sorts update expressions, guarded
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    84
by configuration option "record_sort_updates" (default: false). Some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    85
examples are in theory "HOL-Examples.Records".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    86
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    87
* Meson: added support for polymorphic "using" facts. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    88
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    89
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    90
* Moved auxiliary computation constant "divmod_nat" to theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    91
"HOL.Euclidean_Division". Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    92
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    93
* Renamed attribute "arith_split" to "linarith_split". Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    94
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    95
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    96
* Theory "HOL.Rings": rule split_of_bool_asm is not split any longer,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    97
analogously to split_if_asm. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    98
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
    99
* Theory "HOL.Bit_Operations": rule bit_0 is not default [simp] any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   100
longer. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   101
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   102
* Streamlined primitive definitions of division and modulus on integers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   103
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   104
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   105
* Theory "HOL.Fun":
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   106
  - Added predicate monotone_on and redefined monotone to be an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   107
    abbreviation. Lemma monotone_def is explicitly provided for backward
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   108
    compatibility but its usage is discouraged. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   109
  - Changed argument order of mono_on and strict_mono_on to uniformize
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   110
    with monotone_on and the general "characterizing set at the beginning
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   111
    of predicates" preference. Also change them to be abbreviations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   112
    of monotone_of. Lemmas mono_on_def and strict_mono_on_def are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   113
    explicitly provided for backward compatibility but their usage is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   114
    discouraged. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   115
  - Move mono, strict_mono, antimono, and relevant lemmas to Fun theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   116
    Also change them to be abbreviations of mono_on, strict_mono_on,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   117
    and monotone, respectively. Lemmas mono_def, strict_mono_def, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   118
    antimono_def are explicitly provided for backward compatibility but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   119
    their usage is discouraged. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   120
  - Added lemmas.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   121
      monotone_onD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   122
      monotone_onI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   123
      monotone_on_empty[simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   124
      monotone_on_o
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   125
      monotone_on_subset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   126
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   127
* Theory "HOL.Relation":
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   128
  - Added predicate reflp_on and redefined reflp to be an abbreviation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   129
    Lemma reflp_def is explicitly provided for backward compatibility
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   130
    but its usage is discouraged. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   131
  - Added predicate totalp_on and abbreviation totalp.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   132
  - Replaced HOL.implies by Pure.imp in lemma reflp_mono for consistency
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   133
    with other lemmas. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   134
  - Added lemmas.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   135
      preorder.asymp_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   136
      preorder.asymp_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   137
      reflp_onD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   138
      reflp_onI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   139
      reflp_on_Inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   140
      reflp_on_Sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   141
      reflp_on_empty[simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   142
      reflp_on_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   143
      reflp_on_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   144
      reflp_on_subset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   145
      reflp_on_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   146
      total_on_subset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   147
      totalpD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   148
      totalpI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   149
      totalp_onD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   150
      totalp_onI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   151
      totalp_on_empty[simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   152
      totalp_on_subset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   153
      totalp_on_total_on_eq[pred_set_conv]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   154
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   155
* Theory "HOL.Transitive_Closure":
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   156
  - Added lemmas.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   157
      total_on_trancl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   158
      totalp_on_tranclp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   159
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   160
* New theory "HOL-Library.NList" of fixed length lists.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   161
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   162
* New Theory "HOL-Library.Code_Abstract_Char" implements characters by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   163
target language integers, sacrificing pattern patching in exchange for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   164
dramatically increased performance for comparisons.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   165
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   166
* Theory "HOL-Library.Char_ord": streamlined logical specifications.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   167
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   168
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   169
* Theory "HOL-Library.Multiset":
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   170
  - Consolidated operation and fact names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   171
        multp ~> multp_code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   172
        multeqp ~> multeqp_code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   173
        multp_cancel_add_mset ~> multp_cancel_add_mset0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   174
        multp_cancel_add_mset0[simplified] ~> multp_cancel_add_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   175
        multp_code_iff ~> multp_code_iff_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   176
        multeqp_code_iff ~> multeqp_code_iff_reflcl_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   177
    Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   178
  - Moved mult1_lessE out of preorder type class and add explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   179
    assumption. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   180
  - Added predicate multp equivalent to set mult. Reuse name previously
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   181
    used for what is now called multp_code. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   182
  - Lifted multiple lemmas from mult to multp.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   183
  - Redefined less_multiset to be based on multp. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   184
  - Added lemmas.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   185
      Multiset.bex_greatest_element
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   186
      Multiset.bex_least_element
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   187
      filter_mset_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   188
      filter_mset_cong0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   189
      image_mset_eq_image_mset_plusD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   190
      image_mset_eq_plusD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   191
      image_mset_eq_plus_image_msetD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   192
      image_mset_filter_mset_swap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   193
      monotone_multp_multp_image_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   194
      monotone_on_multp_multp_image_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   195
      multp_image_mset_image_msetD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   196
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   197
* Theory "HOL-Library.Sublist": added lemma map_mono_strict_suffix.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   198
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   199
* Theory "HOL-ex.Sum_of_Powers" has been deleted. The same material is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   200
in the AFP as Bernoulli.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   201
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   202
* Session HOL-Algebra: some facts have been renamed to avoid fact name
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   203
clashes on interpretation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   204
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   205
    is_ring ~> ring_axioms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   206
    cring ~> cring_axioms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   207
    R_def ~> R_m_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   208
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   209
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   210
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   211
* Nitpick: To avoid technical issues, prefer non-JNI solvers to JNI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   212
solvers by default. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   213
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   214
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   215
  - Redesigned multithreading to provide more fine grained prover
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   216
    schedules. The binary option 'slice' has been replaced by a numeric
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   217
    value 'slices' indicating the number of desired slices. Stronger
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   218
    provers can now be run by more than one thread simultaneously. The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   219
    new option 'max_proofs' controls the number of proofs shown.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   220
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   221
  - Introduced sledgehammer_outcome data type and changed return type of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   222
    ML function Sledgehammer.run_sledgehammer from "bool * (string *
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   223
    string list)" to "bool * (sledgehammer_outcome * string)". The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   224
    former value can be recomputed with "apsnd (ATP_Util.map_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   225
    Sledgehammer.short_string_of_sledgehammer_outcome single)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   226
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   227
  - Added support for TX0 and TX1 TPTP formats and $ite/$let expressions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   228
    in TH0 and TH1.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   229
  - Added support for cvc5.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   230
  - Generate Isar proofs by default when and only when the one-liner
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   231
    proof fails to replay and the Isar proof succeeds.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   232
  - Replaced option "sledgehammer_atp_dest_dir" by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   233
    "sledgehammer_atp_problem_dest_dir", for problem files, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   234
    "sledgehammer_atp_proof_dest_dir", for proof files. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   235
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   236
  - Removed support for experimental prover 'z3_tptp'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   237
  - The fastest successfully preplayed proof is always suggested.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   238
  - All SMT solvers but Z3 now resort to suggest (smt (verit)) when no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   239
    proof could be preplayed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   240
  - Added new "some_preplayed" value to "expect" option to specify that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   241
    some successfully preplayed proof is expected. This is in contrast
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   242
    to the "some" value which doesn't specify whether preplay succeeds
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   243
    or not.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   244
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   245
* Mirabelle:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   246
  - Replaced sledgehammer option "keep" by "keep_probs", for problems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   247
    files, and "keep_proofs" for proof files. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   248
  - Added option "-r INT" to randomize the goals with a given 64-bit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   249
    seed before selection.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   250
  - Added option "-y" for a dry run.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   251
  - Renamed run_action to run in Mirabelle.action record. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   252
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   253
  - Run the actions on goals before commands "unfolding" and "using".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   254
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   255
* (Co)datatype package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   256
  - BNFs now require a strict cardinality bound (<o instead of \<le>o).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   257
    Minor INCOMPATIBILITY for existing manual BNF declarations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   258
  - Lemma map_ident_strong is now generated for all BNFs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   259
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   260
* More ambitious minimization of case expressions in generated code.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   261
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   262
* Code generation for Scala: type annotations in pattern bindings are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   263
printed in a way suitable for Scala 3.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   264
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   265
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   266
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   267
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   268
* Type Bytes.T supports scalable byte strings, beyond the limit of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   269
String.maxSize (approx. 64 MB on 64_32 architecture).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   270
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   271
* Operations for XZ compression (via Isabelle/Scala):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   272
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   273
  XZ.compress: Bytes.T -> Bytes.T
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   274
  XZ.uncompress: Bytes.T -> Bytes.T
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   275
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   276
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   277
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   278
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   279
* Isabelle/Scala is now based on Scala 3. This is a completely different
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   280
compiler ("dotty") and a quite different source language (we are using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   281
the classic Java-style syntax, not the new Python-style syntax).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   282
Occasional INCOMPATIBILITY, see also the official Scala documentation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   283
https://docs.scala-lang.org/scala3/guides/migration/compatibility-intro.html
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   284
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   285
* External Isabelle tools implemented as .scala scripts are no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   286
supported. INCOMPATIBILITY, instead provide a proper Isabelle/Scala
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   287
module with etc/build.props and "services" for a suitable class instance
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   288
of isabelle.Isabelle_Scala_Tools. For example, see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   289
$ISABELLE_HOME/etc/build.props and its isabelle.Tools, which defines the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   290
standard Isabelle tools.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   291
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   292
* The session build database now maintains an additional "uuid" column
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   293
to identity the original build process uniquely. Thus other tools may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   294
dependent symbolically on a particular build instance.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   295
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   296
* Command-line tool "isabelle build_docker" supports Docker within Snap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   297
more robustly; see also option -W.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   298
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   299
* Command-line tool "isabelle scala_project" supports Gradle as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   300
alternative to Maven: either option -G or -M needs to be specified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   301
explicitly. This increases the chances that the Java/Scala IDE project
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   302
works properly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   303
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   304
* Command-line tool "isabelle hg_sync" synchronizes the working
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   305
directory of a local Mercurial repository with a target directory, using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   306
rsync notation for destinations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   308
* Command-line tool "isabelle sync" synchronizes Isabelle + AFP
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   309
repositories with a target directory, based on "isabelle hg_sync". Local
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   310
jars and sessions images may be uploaded as well, to avoid redundant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   311
builds on the remote side. This tool requires a Mercurial clone of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   312
Isabelle repository: a regular download of the distribution will not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   313
work!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   314
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   315
* Command-line tool "isabelle log" has been refined to support multiple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   316
sessions, and to match messages against regular expressions (using Java
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   317
Pattern syntax).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   318
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   319
* System option "show_states" controls output of toplevel command states
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   320
(notably proof states) in batch-builds; in interactive mode this is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   321
always done on demand. The option is relevant for tools that operate on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   322
exported PIDE markup, e.g. document presentation or diagnostics. For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   323
example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   324
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   325
  isabelle build -o show_states FOL-ex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   326
  isabelle log -v -U FOL-ex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   327
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   328
Option "show_states" is also the default for the configuration option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   329
"show_results" within the formal context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   330
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   331
Note that printing intermediate states may cause considerable slowdown
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   332
in building a session.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   333
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   334
* Session ROOT entries support 'export_classpath' to augment the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   335
Java/Scala name space for tools that allow dynamic loading of service
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   336
classes within a session context. A notable example is document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   337
preparation, which works via the class isabelle.Document_Build.Engine
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   338
and is configured by the corresponding system option "document_build".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   339
The Isabelle/Isar command 'scala_build_generated_files' helps to produce
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   340
a suitable .jar module for inclusion via 'export_classpath'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   341
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   342
* Isabelle/Scala SSH connections now use regular OpenSSH executables
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   343
from the local system: ssh, scp, sftp; the old ssh-java component has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   344
been discontinued. This has various practical consequences:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   345
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   346
  - Authentication and configuration works accurately via the official
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   347
    .ssh/known_hosts and .ssh/config files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   348
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   349
  - Host connections are usually shared (via multiplexed channels), to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   350
    reduce the overhead for multiple commands. This also works for SSH
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   351
    connections for rsync (e.g. "isabelle sync"). Windows/Cygwin does
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   352
    not support multiplexing: the functionality should be the same, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   353
    slower, with a new connection for each command.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   354
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   355
  - Multiple hops via "bastion hosts" can be easily configured in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   356
    .ssh/config via ProxyJump declarations. The former Isabelle/Scala
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   357
    parameters for proxy_host etc. have been discontinued: minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   358
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   359
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   360
* The MLton compiler for x86_64-linux has been bundled as Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   361
component, since Ubuntu 22.04 no longer provides a suitable package.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   362
Note that on macOS, MLton is readily available via Homebrew:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   363
https://formulae.brew.sh/formula/mlton
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   364
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   365
The Isabelle settings refer to an executable "$ISABELLE_MLTON" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   366
command-line options $ISABELLE_MLTON_OPTIONS, which need to fit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   367
together. Potential INCOMPATIBILITY for existing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   368
$ISABELLE_HOME_USER/etc/settings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   369
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   370
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   371
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   372
New in Isabelle2021-1 (December 2021)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   373
-------------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   374
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   375
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   376
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   377
* The Isabelle/Haskell library ($ISABELLE_HOME/src/Tools/Haskell) has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   378
been significantly improved. In particular, module Isabelle.Bytes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   379
provides type Bytes for light-weight byte strings (with optional UTF8
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   380
interpretation), similar to type string in Isabelle/ML. Isabelle symbols
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   381
now work uniformly in Isabelle/Haskell vs. Isabelle/ML vs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   382
Isabelle/Scala/PIDE.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   383
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   384
* Configuration option "show_results" controls output of final results
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   385
in commands like 'definition' or 'theorem'. Output is normally enabled
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   386
in interactive mode, but it could occasionally cause unnecessary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   387
slowdown. It can be disabled like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   388
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   389
  context notes [[show_results = false]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   390
  begin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   391
    definition "test = True"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   392
    theorem test by (simp add: test_def)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   393
  end
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   394
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   395
* Theory_Data / Generic_Data: "val extend = I" has been removed;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   396
obsolete since Isabelle2021.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   397
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   398
* More symbol definitions for the Z Notation (Isabelle fonts and LaTeX).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   399
See also the group "Z Notation" in the Symbols dockable of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   400
Isabelle/jEdit.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   401
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   402
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   403
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   404
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   405
* Commands 'syntax' and 'no_syntax' now work in a local theory context,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   406
but in contrast to 'notation' and 'no_notation' there is no proper way
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   407
to refer to local entities. Note that local syntax works well with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   408
'bundle', e.g. see "lattice_syntax" vs. "no_lattice_syntax" in theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   409
Main of Isabelle/HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   410
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   411
* The improper proof command 'guess' is no longer part of by Pure, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   412
provided by the separate theory "Pure-ex.Guess". INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   413
existing applications need to import session "Pure-ex" and theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   414
"Pure-ex.Guess". Afterwards it is usually better eliminate the 'guess'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   415
command, using explicit 'obtain' instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   416
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   417
* More robust 'proof' outline for method "induct": support nested cases.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   418
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   419
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   420
*** Isabelle/jEdit Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   421
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   422
* The main plugin for Isabelle/jEdit can be deactivated and reactivated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   423
as documented --- was broken at least since Isabelle2018.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   424
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   425
* Isabelle/jEdit is now composed more conventionally from the original
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   426
jEdit text editor in $JEDIT_HOME (with minor patches), plus two Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   427
plugins that are produced in $JEDIT_SETTINGS/jars on demand. The main
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   428
isabelle.jedit module is now part of Isabelle/Scala (as one big
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   429
$ISABELLE_SCALA_JAR).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   430
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   431
* Add-on components may provide their own jEdit plugins, via the new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   432
Scala/Java module concept: instances of class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   433
isabelle.Scala_Project.Plugin that are declared as "services" within
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   434
etc/build.props are activated on Isabelle/jEdit startup. E.g. see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   435
existing isabelle.jedit.JEdit_Plugin0 (for isabelle_jedit_base.jar) and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   436
isabelle.jedit.JEdit_Plugin1 (for isabelle_jedit_main.jar).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   437
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   438
* Support for built-in font substitution of jEdit text area.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   439
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   440
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   441
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   442
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   443
* HTML presentation now includes links to formal entities.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   444
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   445
* High-quality blackboard-bold symbols from font "txmia" (LaTeX package
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   446
"pxfonts"): \<bbbA>\<bool>\<complex>\<bbbD>\<bbbE>\<bbbF>\<bbbG>\<bbbH>\<bbbI>\<bbbJ>\<bbbK>\<bbbL>\<bbbM>\<nat>\<bbbO>\<bbbP>\<rat>\<real>\<bbbS>\<bbbT>\<bbbU>\<bbbV>\<bbbW>\<bbbX>\<bbbY>\<int>.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   447
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   448
* More predefined symbols: \<Parallel> \<interleave> \<sslash> (package "stmaryrd"), \<checkmark> \<crossmark> (LaTeX
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   449
package "pifont").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   450
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   451
* Document antiquotations for ML text have been refined: "def" and "ref"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   452
variants support index entries, e.g. @{ML} (no entry) vs. @{ML_def}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   453
(bold entry) vs. @{ML_ref} (regular entry); @{ML_type} supports explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   454
type arguments for constructors (only relevant for index), e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   455
@{ML_type \<open>'a list\<close>} vs. @{ML_type 'a \<open>list\<close>}; @{ML_op} has been renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   456
to @{ML_infix}. Minor INCOMPATIBILITY concerning name and syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   457
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   458
* Option "document_logo" determines if an instance of the Isabelle logo
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   459
should be created in the document output directory. The given string
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   460
specifies the name of the logo variant, while "_" (underscore) refers to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   461
the unnamed variant. The output file name is always "isabelle_logo.pdf".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   462
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   463
* Option "document_build" determines the document build engine, as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   464
defined in Isabelle/Scala (as system service). The subsequent engines
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   465
are provided by the Isabelle distribution:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   466
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   467
  - "lualatex" (default): use ISABELLE_LUALATEX for a standard LaTeX
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   468
    build with optional ISABELLE_BIBTEX and ISABELLE_MAKEINDEX
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   469
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   470
  - "pdflatex": as above, but use ISABELLE_PDFLATEX (legacy mode for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   471
    special LaTeX styles)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   472
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   473
  - "build": delegate to the executable "./build pdf"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   474
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   475
The presence of a "build" command within the document output directory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   476
explicitly requires document_build=build. Minor INCOMPATIBILITY, need to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   477
adjust session ROOT options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   478
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   479
* Option "document_comment_latex" enables regular LaTeX comment.sty,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   480
instead of the historic version for plain TeX (default). The latter is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   481
much faster, but in conflict with LaTeX classes like Dagstuhl LIPIcs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   482
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   483
* Option "document_echo" informs about document file names during
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   484
session presentation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   485
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   486
* Option "document_heading_prefix" specifies a prefix for the LaTeX
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   487
macro names generated from document heading commands like 'chapter',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   488
'section' etc. The default is "isamarkup", so 'section' becomes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   489
"\isamarkupsection" for example.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   490
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   491
* The command-line tool "isabelle latex" has been discontinued,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   492
INCOMPATIBILITY for old document build scripts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   493
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   494
  - Former "isabelle latex -o sty" has become obsolete: Isabelle .sty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   495
    files are automatically generated within the document output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   496
    directory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   497
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   498
  - Former "isabelle latex -o pdf" should be replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   499
    "$ISABELLE_LUALATEX root" or "$ISABELLE_PDFLATEX root" (without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   500
    quotes), according to the intended LaTeX engine.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   501
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   502
  - Former "isabelle latex -o bbl" should be replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   503
    "$ISABELLE_BIBTEX root" (without quotes).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   504
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   505
  - Former "isabelle latex -o idx" should be replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   506
    "$ISABELLE_MAKEINDEX root" (without quotes).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   507
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   508
* Option "document_bibliography" explicitly enables the use of bibtex;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   509
the default is to check the presence of root.bib, but it could have a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   510
different name.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   511
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   512
* Improved LaTeX typesetting of \<open>...\<close> using \guilsinglleft ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   513
\guilsinglright. INCOMPATIBILITY, need to use \usepackage[T1]{fontenc}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   514
(which is now also the default in "isabelle mkroot").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   515
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   516
* Simplified typesetting of \<guillemotleft>...\<guillemotright> using \guillemotleft ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   517
\guillemotright from \usepackage[T1]{fontenc} --- \usepackage{babel} is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   518
no longer required.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   519
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   520
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   521
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   522
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   523
* "global_interpretation" is applicable in instantiation and overloading
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   524
targets and in any nested target built on top of a target supporting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   525
"global_interpretation".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   526
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   527
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   528
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   529
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   530
* A new, verified order prover for partial and linear orders. The order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   531
prover rearranges the goal to prove False, then retrieves order literals
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   532
(i.e. x = y, x <= y, x < y, and their negated versions) from the premises 
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   533
and finally tries to derive a contradiction. Its main use case is as a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   534
solver to the simplifier, where it e.g. solves premises of conditional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   535
rewrite rules.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   536
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   537
The new prover (src/Provers/order_tac.ML) replaces the old prover
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   538
(src/Provers/order.ML) and improves upon the old one in several ways:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   539
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   540
  - The completeness of the prover is verified in Isabelle (see the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   541
    ATVA 2021 paper "A Verified Decision Procedure for Orders in Isabelle/HOL").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   542
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   543
  - The new prover is complete for partial orders.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   544
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   545
  - The interface to register new orders was reworked to reduce boilerplate.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   546
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   547
The prover has two configuration attributes that control its behaviour:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   548
  
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   549
  - order_trace (default: false): Enables tracing for the solver.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   550
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   551
  - order_split_limit (default: 8): Limits the number of order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   552
    literals of the form ~ x < y that are passed to the solver since
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   553
    those lead to case splitting and thus exponential runtime. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   554
    only applies to partial orders.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   555
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   556
The prover is agnostic to the object logic. For HOL, the setup for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   557
prover is performed in src/HOL/Orderings.thy where the structure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   558
HOL_Order_Tac is obtained. The structure allows us to register new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   559
orders with the functions HOL_Order_Tac.declare_order and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   560
HOL_Order_Tac.declare_linorder. Using these functions, we register the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   561
orders of the type classes order and linorder with the solver. If
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   562
possible, one should instantiate these type classes instead of adding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   563
new orders to the solver. One can also interpret the type class locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   564
as in src/HOL/Library/Sublist.thy, which contains e.g. the prefix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   565
order on lists.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   566
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   567
The method order calls the prover in a standalone fashion.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   568
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   569
The diagnostic command print_orders shows all orders known to the prover
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   570
in the current context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   571
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   572
* Theorems "antisym" and "eq_iff" in class "order" have been renamed to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   573
"order.antisym" and "order.eq_iff", to coexist locally with "antisym"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   574
and "eq_iff" from locale "ordering". INCOMPATIBILITY: significant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   575
potential for change can be avoided if interpretations of type class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   576
"order" are replaced or augmented by interpretations of locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   577
"ordering".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   578
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   579
* Theorem "swap_def" now is always qualified as "Fun.swap_def". Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   580
INCOMPATIBILITY; note that for most applications less elementary lemmas
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   581
exists.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   582
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   583
* Lemma "permutes_induct" has been given stronger hypotheses and named
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   584
premises. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   585
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   586
* Combinator "Fun.swap" resolved into a mere input abbreviation in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   587
separate theory "Transposition" in HOL-Combinatorics. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   588
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   589
* Theory Bit_Operations is now part of HOL-Main. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   590
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   591
* Infix syntax for bit operations AND, OR, XOR, NOT is now organized in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   592
bundle bit_operations_syntax. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   593
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   594
* Bit operations set_bit, unset_bit and flip_bit are now class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   595
operations. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   596
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   597
* Simplified class hierarchy for bit operations: bit operations reside
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   598
in classes (semi)ring_bit_operations, class semiring_bit_shifts is gone.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   599
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   600
* Consecutive conversions to and from words are not collapsed in any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   601
case: rules unsigned_of_nat, unsigned_of_int, signed_of_int,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   602
signed_of_nat, word_of_nat_eq_0_iff, word_of_int_eq_0_iff are not simp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   603
by default any longer.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   604
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   605
* Abbreviation "max_word" has been moved to session Word_Lib in the AFP,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   606
as also have constants "shiftl1", "shiftr1", "sshiftr1", "bshiftr1",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   607
"setBit", "clearBit". See there further the changelog in theory Guide.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   608
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   609
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   610
* Reorganized classes and locales for boolean algebras. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   611
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   612
* New simp rules: less_exp, min.absorb1, min.absorb2, min.absorb3,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   613
min.absorb4, max.absorb1, max.absorb2, max.absorb3, max.absorb4. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   614
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   615
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   616
* The Mirabelle testing tool is now part of Main HOL, and accessible via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   617
the command-line tool "isabelle mirabelle" (implemented in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   618
Isabelle/Scala). It has become more robust and supports parallelism
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   619
within Isabelle/ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   620
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   621
* Nitpick: External solver "MiniSat" is available for all supported
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   622
Isabelle platforms (including 64bit Windows and ARM); while
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   623
"MiniSat_JNI" only works for Intel Linux and macOS.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   624
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   625
* Nitpick/Kodkod: default is back to external Java process (option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   626
kodkod_scala = false), both for PIDE and batch builds. This reduces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   627
confusion and increases robustness of timeouts, despite substantial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   628
overhead to run an external JVM. For more fine-grained control, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   629
kodkod_scala option can be modified within the formal theory context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   630
like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   631
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   632
  declare [[kodkod_scala = false]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   633
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   634
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   635
  - Update of bundled provers:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   636
      . E 2.6
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   637
      . Vampire 4.6 (with Open Source license)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   638
      . veriT 2021.06.1-rmx
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   639
      . Zipperposition 2.1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   640
      . Z3 4.4.1 for arm64-linux, which approximates Z3 4.4.0pre,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   641
        but sometimes fails or crashes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   642
  - Adjusted default provers:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   643
      cvc4 vampire verit e spass z3 zipperposition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   644
  - Adjusted Zipperposition's slicing.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   645
  - Removed legacy "lam_lifting" (synonym for "lifting") from option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   646
    "lam_trans". Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   647
  - Renamed "hide_lams" to "opaque_lifting" in option "lam_trans". Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   648
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   649
  - Added "opaque_combs" to option "lam_trans": lambda expressions are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   650
    rewritten using combinators, but the combinators are kept opaque,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   651
    i.e. without definitions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   652
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   653
* Metis:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   654
  - Renamed option "hide_lams" to "opaque_lifting". Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   655
  - Updated the Metis prover underlying the "metis" proof method to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   656
    version 2.4 (release 20200713). The new version fixes one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   657
    implementation defect. Very slight INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   658
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   659
* Theory HOL-Library.Lattice_Syntax has been superseded by bundle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   660
"lattice_syntax": it can be used in a local context via 'include' or in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   661
a global theory via 'unbundle'. The opposite declarations are bundled as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   662
"no_lattice_syntax". Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   663
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   664
* Theory "HOL-Library.Multiset": dedicated predicate "multiset" is gone,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   665
use explict expression instead. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   666
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   667
* Theory "HOL-Library.Multiset": consolidated abbreviations Mempty,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   668
Melem, not_Melem to empty_mset, member_mset, not_member_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   669
respectively. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   670
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   671
* Theory "HOL-Library.Multiset": consolidated operation and fact names:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   672
    inf_subset_mset ~> inter_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   673
    sup_subset_mset ~> union_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   674
    multiset_inter_def ~> inter_mset_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   675
    sup_subset_mset_def ~> union_mset_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   676
    multiset_inter_count ~> count_inter_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   677
    sup_subset_mset_count ~> count_union_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   678
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   679
* Theory "HOL-Library.Complex_Order": Defines less, less_eq on complex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   680
numbers. Not imported by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   681
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   682
* Theory "HOL-Library.Multiset": syntax precendence for membership
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   683
operations has been adjusted to match the corresponding precendences on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   684
sets. Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   685
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   686
* Theory "HOL-Library.Cardinality": code generator setup based on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   687
type classes finite_UNIV and card_UNIV has been moved to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   688
"HOL-Library.Code_Cardinality", to avoid incompatibilities with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   689
other code setups for sets in AFP/Containers. Applications relying on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   690
this code setup should import "HOL-Library.Code_Cardinality". Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   691
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   692
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   693
* Theory "HOL-Library.Permutation" has been renamed to the more specific
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   694
"HOL-Library.List_Permutation". Note that most notions from that theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   695
are already present in theory "HOL-Combinatorics.Permutations".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   696
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   697
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   698
* Dedicated session "HOL-Combinatorics". INCOMPATIBILITY: theories
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   699
"Permutations", "List_Permutation" (formerly "Permutation"), "Stirling",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   700
"Multiset_Permutations", "Perm" have been moved there from session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   701
HOL-Library.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   702
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   703
* Theory "HOL-Combinatorics.Transposition" provides elementary swap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   704
operation "transpose".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   705
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   706
* Theory "HOL-Analysis.Infinite_Sum": new theory for infinite sums with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   707
a more general definition than the existing theory Infinite_Set_Sum.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   708
(Infinite_Set_Sum contains theorems relating the two definitions.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   709
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   710
* Theory "HOL-Analysis.Product_Vector": Instantiation of the product of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   711
uniform spaces as a uniform space. Minor INCOMPATIBILITY: the old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   712
definition "uniformity_prod_def" is available as a derived fact
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   713
"uniformity_dist".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   714
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   715
* Session "HOL-Analysis" and "HOL-Probability": indexed products of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   716
discrete distributions, negative binomial distribution, Hoeffding's
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   717
inequality, Chernoff bounds, Cauchy–Schwarz inequality for nn_integral,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   718
and some more small lemmas. Some theorems that were stated awkwardly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   719
before were corrected. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   720
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   721
* Session "HOL-Analysis": the complex Arg function has been identified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   722
with the function "arg" of Complex_Main, renaming arg ~> Arg also in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   723
names of arg_bounded. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   724
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   725
* Session "HOL-Statespace": various improvements and cleanup.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   726
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   727
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   728
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   729
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   730
* External bash processes are always managed by Isabelle/Scala, in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   731
contrast to Isabelle2021 where this was only done for macOS on Apple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   732
Silicon.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   733
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   734
The main Isabelle/ML interface is Isabelle_System.bash_process with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   735
result type Process_Result.T (resembling class Process_Result in Scala);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   736
derived operations Isabelle_System.bash and Isabelle_System.bash_output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   737
provide similar functionality as before. The underlying TCP/IP server
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   738
within Isabelle/Scala is available to other programming languages as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   739
well, notably Isabelle/Haskell.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   740
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   741
Rare INCOMPATIBILITY due to subtle semantic differences:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   742
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   743
  - Processes invoked from Isabelle/ML actually run in the context of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   744
    the Java VM of Isabelle/Scala. The settings environment and current
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   745
    working directory are usually the same on both sides, but there can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   746
    subtle corner cases (e.g. unexpected uses of "cd" or "putenv" in ML).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   747
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   748
  - Output via stdout and stderr is line-oriented: Unix vs. Windows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   749
    line-endings are normalized towards Unix; presence or absence of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   750
    final newline is irrelevant. The original lines are available as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   751
    Process_Result.out_lines/err_lines; the concatenated versions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   752
    Process_Result.out/err *omit* a trailing newline (using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   753
    Library.trim_line, which was occasional seen in applications before,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   754
    but is no longer necessary).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   755
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   756
  - Output needs to be plain text encoded in UTF-8: Isabelle/Scala
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   757
    recodes it temporarily as UTF-16. This works for well-formed Unicode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   758
    text, but not for arbitrary byte strings. In such cases, the bash
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   759
    script should write tempory files, managed by Isabelle/ML operations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   760
    like Isabelle_System.with_tmp_file to create a file name and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   761
    File.read to retrieve its content.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   762
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   763
  - The Isabelle/Scala "bash_process" server requires a PIDE session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   764
    context. This could be a regular batch session (e.g. "isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   765
    build"), a PIDE editor session (e.g. "isabelle jedit"), or headless
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   766
    PIDE (e.g. "isabelle dump" or "isabelle server"). Note that old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   767
    "isabelle console" or raw "isabelle process" don't have that.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   768
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   769
New Process_Result.timing works as in Isabelle/Scala, based on direct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   770
measurements of the bash_process wrapper in C: elapsed time is always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   771
available, CPU time is only available on Linux and macOS, GC time is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   772
unavailable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   773
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   774
* The following Isabelle/ML system operations are run in the context of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   775
Isabelle/Scala, within a PIDE session context:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   776
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   777
  - Isabelle_System.make_directory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   778
  - Isabelle_System.copy_dir
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   779
  - Isabelle_System.copy_file
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   780
  - Isabelle_System.copy_base_file
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   781
  - Isabelle_System.rm_tree
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   782
  - Isabelle_System.download
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   783
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   784
* Term operations under abstractions are now more robust (and more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   785
strict) by using the formal proof context in subsequent operations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   786
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   787
  Variable.dest_abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   788
  Variable.dest_abs_cterm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   789
  Variable.dest_all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   790
  Variable.dest_all_cterm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   791
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   792
This works under the assumption that terms are always properly declared
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   793
to the proof context (e.g. via Variable.declare_term). Failure to do so,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   794
or working with the wrong context, will cause an error (exception Fail,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   795
based on Term.USED_FREE from Term.dest_abs_fresh).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   796
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   797
The Simplifier and equational conversions now use the above operations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   798
routinely, and thus require user-space tools to be serious about the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   799
proof context (notably in their use of Goal.prove, SUBPROOF etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   800
INCOMPATIBILITY in add-on tools is to be expected occasionally: a proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   801
context discipline needs to be followed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   802
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   803
* Former operations Term.dest_abs and Logic.dest_all (without a proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   804
context) have been discontinued. INCOMPATIBILITY, either use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   805
Variable.dest_abs etc. above, or the following operations that imitate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   806
the old behavior to a great extent:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   807
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   808
  Term.dest_abs_global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   809
  Logic.dest_all_global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   810
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   811
This works under the assumption that the given (sub-)term directly shows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   812
all free variables that need to be avoided when generating a fresh name.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   813
A violation of the assumption are variables stemming from the enclosing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   814
context that get involved in a proof only later.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   815
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   816
* ML structures TFrees, TVars, Frees, Vars, Names provide scalable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   817
operations to accumulate items from types and terms, using a fast
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   818
syntactic order. The original order of occurrences may be recovered as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   819
well, e.g. via TFrees.list_set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   820
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   821
* Thm.instantiate, Thm.generalize and related operations (e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   822
Variable.import) now use scalable data structures from structure TVars,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   823
Vars, Names etc. INCOMPATIBILITY: e.g. use TVars.empty and TVars.make
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   824
for immediate adoption; better use TVars.add, TVars.add_tfrees etc. for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   825
scalable accumulation of items.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   826
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   827
* Thm.instantiate_beta applies newly emerging abstractions to their
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   828
arguments in the term, but leaves other beta-redexes unchanged --- in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   829
contrast to Drule.instantiate_normalize.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   830
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   831
* ML antiquotation "instantiate" allows to instantiate formal entities
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   832
(types, terms, theorems) with values given ML. This works uniformly for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   833
"typ", "term", "prop", "ctyp", "cterm", "cprop", "lemma" --- given as a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   834
keyword after the instantiation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   835
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   836
A mode "(schematic)" behind the keyword means that some variables may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   837
remain uninstantiated (fixed in the specification and schematic in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   838
result); by default, all variables need to be instantiated.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   839
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   840
Newly emerging abstractions are applied to their arguments in the term
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   841
(using Thm.instantiate_beta).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   842
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   843
Examples in HOL:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   844
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   845
  fun make_assoc_type (A, B) =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   846
    \<^instantiate>\<open>'a = A and 'b = B in typ \<open>('a \<times> 'b) list\<close>\<close>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   847
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   848
  val make_assoc_list =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   849
    map (fn (x, y) =>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   850
      \<^instantiate>\<open>'a = \<open>fastype_of x\<close> and 'b = \<open>fastype_of y\<close> and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   851
        x and y in term \<open>(x, y)\<close> for x :: 'a and y :: 'b\<close>);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   852
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   853
  fun symmetry x y =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   854
    \<^instantiate>\<open>'a = \<open>Thm.ctyp_of_cterm x\<close> and x and y in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   855
      lemma \<open>x = y \<Longrightarrow> y = x\<close> for x y :: 'a by simp\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   856
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   857
  fun symmetry_schematic A =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   858
    \<^instantiate>\<open>'a = A in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   859
      lemma (schematic) \<open>x = y \<Longrightarrow> y = x\<close> for x y :: 'a by simp\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   860
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   861
* ML antiquotation for embedded lemma supports local fixes, as usual in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   862
many other Isar language elements. For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   863
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   864
  @{lemma "x = x" for x :: nat by (rule refl)}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   865
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   866
* ML antiquotations for type constructors and term constants:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   867
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   868
    \<^Type>\<open>c\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   869
    \<^Type>\<open>c T \<dots>\<close>       \<comment> \<open>same with type arguments\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   870
    \<^Type_fn>\<open>c T \<dots>\<close>    \<comment> \<open>fn abstraction, failure via exception TYPE\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   871
    \<^Const>\<open>c\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   872
    \<^Const>\<open>c T \<dots>\<close>      \<comment> \<open>same with type arguments\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   873
    \<^Const>\<open>c for t \<dots>\<close>  \<comment> \<open>same with term arguments\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   874
    \<^Const_>\<open>c \<dots>\<close>       \<comment> \<open>same for patterns: case, let, fn\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   875
    \<^Const_fn>\<open>c T \<dots>\<close>   \<comment> \<open>fn abstraction, failure via exception TERM\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   876
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   877
The type/term arguments refer to nested ML source, which may contain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   878
antiquotations recursively. The following argument syntax is supported:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   879
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   880
  - an underscore (dummy pattern)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   881
  - an atomic item of "embedded" syntax, e.g. identifier or cartouche
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   882
  - an antiquotation in control-symbol/cartouche form, e.g. \<^Type>\<open>c\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   883
    as short form of \<open>\<^Type>\<open>c\<close>\<close>.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   884
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   885
Examples in HOL:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   886
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   887
  val natT = \<^Type>\<open>nat\<close>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   888
  fun mk_funT (A, B) = \<^Type>\<open>fun A B\<close>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   889
  val dest_funT = \<^Type_fn>\<open>fun A B => \<open>(A, B)\<close>\<close>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   890
  fun mk_conj (A, B) = \<^Const>\<open>conj for A B\<close>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   891
  val dest_conj = \<^Const_fn>\<open>conj for A B => \<open>(A, B)\<close>\<close>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   892
  fun mk_eq T (t, u) = \<^Const>\<open>HOL.eq T for t u\<close>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   893
  val dest_eq = \<^Const_fn>\<open>HOL.eq T for t u => \<open>(T, (t, u))\<close>\<close>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   894
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   895
* ML antiquotations \<^make_judgment> and \<^dest_judgment> refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   896
corresponding functions for the object-logic of the ML compilation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   897
context. This supersedes older mk_Trueprop / dest_Trueprop operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   899
* The "build" combinators of various data structures help to build
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   900
content from bottom-up, by applying an "add" function the "empty" value.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   901
For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   902
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   903
  - type 'a Symtab.table etc.: build
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   904
  - type 'a Names.table etc.: build
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   905
  - type 'a list: build and build_rev
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   906
  - type Buffer.T: build and build_content
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   907
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   908
For example, see src/Pure/PIDE/xml.ML:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   909
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   910
  val content_of = Buffer.build_content o fold add_content;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   911
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   912
* ML antiquotations \<^try>\<open>expr\<close> and \<^can>\<open>expr\<close> operate directly on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   913
the given ML expression, in contrast to functions "try" and "can" that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   914
modify application of a function.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   915
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   916
* ML antiquotations for conditional ML text:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   917
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   918
    \<^if_linux>\<open>...\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   919
    \<^if_macos>\<open>...\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   920
    \<^if_windows>\<open>...\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   921
    \<^if_unix>\<open>...\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   922
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   923
* ML profiling has been updated and reactivated, after some degration in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   924
Isabelle2021:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   925
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   926
  - "isabelle build -o threads=1 -o profiling=..." works properly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   927
    within the PIDE session context;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   928
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   929
  - "isabelle profiling_report" now uses the session build database
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   930
    (like "isabelle log");
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   931
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   932
  - output uses non-intrusive tracing messages, instead of warnings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   933
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   934
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   935
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   936
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   937
* Almost complete support for arm64-linux platform. The reference
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   938
platform is Raspberry Pi 4 with 8 GB RAM running Pi OS (64 bit).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   939
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   940
* Update to OpenJDK 17: the current long-term support version of Java.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   941
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   942
* Update to Poly/ML 5.9 with improved support for ARM on Linux. On
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   943
macOS, the Intel version works more smoothly with Rosetta 2, as already
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   944
used in Isabelle2021. Further changes to Poly/ML are documented here:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   945
http://lists.inf.ed.ac.uk/pipermail/polyml/2021-May/002451.html
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   946
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   947
* Perl is no longer required by Isabelle proper, and no longer provided
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   948
by specific Isabelle execution environments (Docker, Cygwin on Windows).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   949
Minor INCOMPATIBILITY, add-on applications involving perl need to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   950
provide it by different means. (Note that proper Isabelle systems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   951
programming works via Scala/Java, without perl, python, ruby etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   952
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   953
* Each Isabelle component may specify a Scala/Java jar module
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   954
declaratively via etc/build.props (file names are relative to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   955
component directory). E.g. see $ISABELLE_HOME/etc/build.props with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   956
further explanations in the "system" manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   957
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   958
* Command-line tool "isabelle scala_build" allows to invoke the build
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   959
process of all Scala/Java modules explicitly. Normally this is done
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   960
implicitly on demand, e.g. for "isabelle scala" or "isabelle jedit".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   961
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   962
* Command-line tool "isabelle scala_project" is has been improved in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   963
various ways:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   964
  - sources from all components with etc/build.props are included,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   965
  - sources of for the jEdit text editor and the Isabelle/jEdit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   966
    plugins (jedit_base and jedit_main) are included by default,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   967
  - more sources may be given on the command-line,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   968
  - options -f and -D make the tool more convenient,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   969
  - Gradle has been replaced by Maven (less ambitious and more robust).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   970
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   971
* Remote provers from SystemOnTPTP (notably for Sledgehammer) are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   972
managed via Isabelle/Scala instead of perl; the dependency on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   973
libwww-perl has been eliminated (notably on Linux). Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   974
INCOMPATIBILITY: HTTP proxy configuration now works via JVM properties
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   975
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/doc-files/net-properties.html
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   976
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   977
* System options may declare an implicit standard value, which is used
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   978
when the option is activated without providing an explicit value, e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   979
"isabelle build -o document -o document_output" instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   980
"isabelle build -o document=true -o document_output=output". For options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   981
of type "bool", the standard is always "true" and cannot be specified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   982
differently.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   983
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   984
* System option "document=true" is an alias for "document=pdf", and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   985
"document=false" is an alias for "document=" (empty string).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   986
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   987
* System option "system_log" specifies an optional log file for internal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   988
messages produced by Output.system_message in Isabelle/ML; the standard
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   989
value "-" refers to console progress of the build job. This works for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   990
"isabelle build" or any derivative of it.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   991
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   992
* Command-line tool "isabelle version" supports repository archives
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   993
(without full .hg directory). It also provides more options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   994
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   995
* Obsolete settings variable ISABELLE_PLATFORM32 has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   996
Note that only Windows supports old 32 bit executables, via settings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   997
variable ISABELLE_WINDOWS_PLATFORM32. Everything else should be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   998
ISABELLE_PLATFORM64 (generic Posix) or ISABELLE_WINDOWS_PLATFORM64
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
   999
(native Windows) or ISABELLE_APPLE_PLATFORM64 (Apple Silicon).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1000
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1001
* Timeouts for Isabelle/ML tools are subject to system option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1002
"timeout_scale", to support adjustments to slow machines. Before,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1003
timeout_scale was only used for the overall session build process, now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1004
it affects the underlying Timeout.apply in Isabelle/ML as well. It
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1005
treats a timeout specification 0 as "no timeout", instead of "immediate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1006
timeout". Rare INCOMPATIBILITY in boundary cases.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1007
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1008
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1009
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1010
New in Isabelle2021 (February 2021)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1011
-----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1012
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1013
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1014
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1015
* On macOS, the IsabelleXYZ.app directory layout now follows the other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1016
platforms, without indirection via Contents/Resources/. INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1017
use e.g. IsabelleXYZ.app/bin/isabelle instead of former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1018
IsabelleXYZ.app/Isabelle/bin/isabelle or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1019
IsabelleXYZ.app/Isabelle/Contents/Resources/IsabelleXYZ/bin/isabelle.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1020
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1021
* HTML presentation uses rich markup produced by Isabelle/PIDE,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1022
resulting in more colors and links.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1023
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1024
* HTML presentation includes auxiliary files (e.g. ML) for each theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1025
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1026
* Proof method "subst" is confined to the original subgoal range: its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1027
included distinct_subgoals_tac no longer affects unrelated subgoals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1028
Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1029
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1030
* Theory_Data extend operation is obsolete and needs to be the identity
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1031
function; merge should be conservative and not reset to the empty value.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1032
Subtle INCOMPATIBILITY and change of semantics (due to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1033
Theory.join_theory from Isabelle2020). Special extend/merge behaviour at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1034
the begin of a new theory can be achieved via Theory.at_begin.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1035
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1036
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1037
*** Isabelle/jEdit Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1038
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1039
* Improved GUI look-and-feel: the portable and scalable "FlatLaf Light"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1040
is used by default on all platforms (appearance similar to IntelliJ
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1041
IDEA).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1042
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1043
* Improved markup for theory header imports: hyperlinks for theory files
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1044
work without formal checking of content.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1045
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1046
* The prover process can download auxiliary files (e.g. 'ML_file') for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1047
theories with remote URL. This requires the external "curl" program.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1049
* Action "isabelle.goto-entity" (shortcut CS+d) jumps to the definition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1050
of the formal entity at the caret position.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1051
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1052
* The visual feedback on caret entity focus is normally restricted to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1053
definitions within the visible text area. The keyboard modifier "CS"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1054
overrides this: then all defining and referencing positions are shown.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1055
See also option "jedit_focus_modifier".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1056
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1057
* The jEdit status line includes widgets both for JVM and ML heap usage.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1058
Ongoing ML ongoing garbage collection is shown as "ML cleanup".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1059
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1060
* The Monitor dockable provides buttons to request a full garbage
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1061
collection and sharing of live data on the ML heap. It also includes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1062
information about the Java Runtime system.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1063
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1064
* PIDE support for session ROOTS: markup for directories.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1065
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1066
* Update to jedit-5.6.0, the latest release. This version works properly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1067
on macOS by default, without the special MacOSX plugin.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1068
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1069
* Action "full-screen-mode" (shortcut F11 or S+F11) has been modified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1070
for better approximate window size on macOS and Linux/X11.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1071
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1072
* Improved GUI support for macOS 11.1 Big Sur: native fullscreen mode,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1073
but non-native look-and-feel (FlatLaf).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1074
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1075
* Hyperlinks to various file-formats (.pdf, .png, etc.) open an external
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1076
viewer, instead of re-using the jEdit text editor.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1077
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1078
* IDE support for Naproche-SAD: Proof Checking of Natural Mathematical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1079
Documents. See also $NAPROCHE_HOME/examples for files with .ftl or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1080
.ftl.tex extension. The corresponding Naproche-SAD server process can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1081
disabled by setting the system option naproche_server=false and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1082
restarting the Isabelle application.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1083
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1084
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1085
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1086
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1087
* Keyword 'document_theories' within ROOT specifies theories from other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1088
sessions that should be included in the generated document source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1089
directory. This does not affect the generated session.tex: \input{...}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1090
needs to be used separately.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1091
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1092
* The standard LaTeX engine is now lualatex, according to settings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1093
variable ISABELLE_PDFLATEX. This is mostly upwards compatible with old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1094
pdflatex, but text encoding needs to conform strictly to utf8. Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1095
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1096
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1097
* Discontinued obsolete DVI format and ISABELLE_LATEX settings variable:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1098
document output is always PDF.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1099
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1100
* Antiquotation @{tool} refers to Isabelle command-line tools, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1101
completion and formal reference to the source (external script or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1102
internal Scala function).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1103
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1104
* Antiquotation @{bash_function} refers to GNU bash functions that are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1105
checked within the Isabelle settings environment.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1106
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1107
* Antiquotations @{scala}, @{scala_object}, @{scala_type},
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1108
@{scala_method} refer to checked Isabelle/Scala entities.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1109
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1110
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1111
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1112
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1113
* Session Pure-Examples contains notable examples for Isabelle/Pure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1114
(former entries of HOL-Isar_Examples).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1115
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1116
* Named contexts (locale and class specifications, locale and class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1117
context blocks) allow bundle mixins for the surface context. This allows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1118
syntax notations to be organized within bundles conveniently. See theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1119
"HOL-ex.Specifications_with_bundle_mixins" for examples and the isar-ref
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1120
manual for syntax descriptions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1121
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1122
* Definitions in locales produce rule which can be added as congruence
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1123
rule to protect foundational terms during simplification.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1124
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1125
* Consolidated terminology and function signatures for nested targets:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1126
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1127
  - Local_Theory.begin_nested replaces Local_Theory.open_target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1128
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1129
  - Local_Theory.end_nested replaces Local_Theory.close_target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1130
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1131
  - Combination of Local_Theory.begin_nested and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1132
    Local_Theory.end_nested(_result) replaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1133
    Local_Theory.subtarget(_result)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1134
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1135
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1136
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1137
* Local_Theory.init replaces Generic_Target.init. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1138
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1139
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1140
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1141
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1142
* Session HOL-Examples contains notable examples for Isabelle/HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1143
(former entries of HOL-Isar_Examples, HOL-ex etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1144
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1145
* An updated version of the veriT solver is now included as Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1146
component. It can be used in the "smt" proof method via "smt (verit)" or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1147
via "declare [[smt_solver = verit]]" in the context; see also session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1148
HOL-Word-SMT_Examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1149
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1150
* Zipperposition 2.0 is now included as Isabelle component for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1151
experimentation, e.g. in "sledgehammer [prover = zipperposition]".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1152
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1153
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1154
  - support veriT in proof preplay
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1155
  - take adventage of more cores in proof preplay
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1156
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1157
* Updated the Metis prover underlying the "metis" proof method to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1158
version 2.4 (release 20180810). The new version fixes one soundness
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1159
defect and two incompleteness defects. Very slight INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1160
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1161
* Nitpick/Kodkod may be invoked directly within the running
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1162
Isabelle/Scala session (instead of an external Java process): this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1163
improves reactivity and saves resources. This experimental feature is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1164
guarded by system option "kodkod_scala" (default: true in PIDE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1165
interaction, false in batch builds).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1166
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1167
* Simproc "defined_all" and rewrite rule "subst_all" perform more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1168
aggressive substitution with variables from assumptions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1169
INCOMPATIBILITY, consider repairing proofs locally like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1170
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1171
  supply subst_all [simp del] [[simproc del: defined_all]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1172
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1173
* Simproc "datatype_no_proper_subterm" rewrites equalities "lhs = rhs"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1174
on datatypes to "False" if either side is a proper subexpression of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1175
other (for any datatype with a reasonable size function).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1176
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1177
* Syntax for state monad combinators fcomp and scomp is organized in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1178
bundle state_combinator_syntax.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1179
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1180
* Syntax for reflected term syntax is organized in bundle term_syntax,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1181
discontinuing previous locale term_syntax.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1182
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1183
* New constant "power_int" for exponentiation with integer exponent,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1184
written as "x powi n".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1185
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1186
* Added the "at most 1" quantifier, Uniq.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1187
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1188
* For the natural numbers, "Sup {} = 0".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1189
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1190
* New constant semiring_char gives the characteristic of any type of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1191
class semiring_1, with the convenient notation CHAR('a). For example,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1192
CHAR(nat) = CHAR(int) = CHAR(real) = 0, CHAR(17) = 17.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1193
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1194
* HOL-Computational_Algebra.Polynomial: Definition and basic properties
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1195
of algebraic integers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1196
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1197
* Library theory "Bit_Operations" with generic bit operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1198
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1199
* Library theory "Signed_Division" provides operations for signed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1200
division, instantiated for type int.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1201
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1202
* Theory "Multiset": removed misleading notation \<Union># for sum_mset;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1203
replaced with \<Sum>\<^sub>#. Analogous notation for prod_mset also exists now.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1204
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1205
* New theory "HOL-Library.Word" takes over material from former session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1206
"HOL-Word". INCOMPATIBILITY: need to adjust imports.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1207
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1208
* Theory "HOL-Library.Word": Type word is restricted to bit strings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1209
consisting of at least one bit. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1210
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1211
* Theory "HOL-Library.Word": Bit operations NOT, AND, OR, XOR are based
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1212
on generic algebraic bit operations from theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1213
"HOL-Library.Bit_Operations". INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1214
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1215
* Theory "HOL-Library.Word": Most operations on type word are set up for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1216
transfer and lifting. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1217
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1218
* Theory "HOL-Library.Word": Generic type conversions. INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1219
sometimes additional rewrite rules must be added to applications to get
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1220
a confluent system again.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1221
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1222
* Theory "HOL-Library.Word": Uniform polymorphic "mask" operation for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1223
both types int and word. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1224
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1225
* Theory "HOL-Library.Word": Syntax for signed compare operators has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1226
been consolidated with syntax of regular compare operators. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1227
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1228
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1229
* Former session "HOL-Word": Various operations dealing with bit values
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1230
represented as reversed lists of bools are separated into theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1231
Reversed_Bit_Lists in session Word_Lib in the AFP. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1232
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1233
* Former session "HOL-Word": Theory "Word_Bitwise" has been moved to AFP
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1234
entry Word_Lib as theory "Bitwise". INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1235
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1236
* Former session "HOL-Word": Compound operation "bin_split" simplifies
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1237
by default into its components "drop_bit" and "take_bit".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1238
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1239
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1240
* Former session "HOL-Word": Operations lsb, msb and set_bit are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1241
separated into theories Least_significant_bit, Most_significant_bit and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1242
Generic_set_bit respectively in session Word_Lib in the AFP.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1243
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1244
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1245
* Former session "HOL-Word": Ancient int numeral representation has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1246
factored out in separate theory "Ancient_Numeral" in session Word_Lib in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1247
the AFP. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1248
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1249
* Former session "HOL-Word": Operations "bin_last", "bin_rest",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1250
"bin_nth", "bintrunc", "sbintrunc", "norm_sint", "bin_cat" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1251
"max_word" are now mere input abbreviations. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1252
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1253
* Former session "HOL-Word": Misc ancient material has been factored out
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1254
into separate theories and moved to session Word_Lib in the AFP. See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1255
theory "Guide" there for further information. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1256
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1257
* Session HOL-TPTP: The "tptp_isabelle" and "tptp_sledgehammer" commands
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1258
are in working order again, as opposed to outputting "GaveUp" on nearly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1259
all problems.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1260
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1261
* Session "HOL-Hoare": concrete syntax only for Hoare triples, not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1262
abstract language constructors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1263
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1264
* Session "HOL-Hoare": now provides a total correctness logic as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1265
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1266
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1267
*** FOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1268
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1269
* Added the "at most 1" quantifier, Uniq, as in HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1270
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1271
* Simproc "defined_all" and rewrite rule "subst_all" have been changed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1272
as in HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1273
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1274
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1275
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1276
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1277
* Antiquotations @{scala_function}, @{scala}, @{scala_thread} refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1278
registered Isabelle/Scala functions (of type String => String):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1279
invocation works via the PIDE protocol.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1280
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1281
* Path.append is available as overloaded "+" operator, similar to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1282
corresponding Isabelle/Scala operation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1283
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1284
* ML statistics via an external Poly/ML process: this allows monitoring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1285
the runtime system while the ML program sleeps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1286
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1287
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1288
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1289
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1290
* Isabelle server allows user-defined commands via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1291
isabelle_scala_service.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1292
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1293
* Update/rebuild external provers on currently supported OS platforms,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1294
notably CVC4 1.8, E prover 2.5, SPASS 3.8ds, CSDP 6.1.1.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1295
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1296
* The command-line tool "isabelle log" prints prover messages from the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1297
build database of the given session, following the the order of theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1298
sources, instead of erratic parallel evaluation. Consequently, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1299
session log file is restricted to system messages of the overall build
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1300
process, and thus becomes more informative.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1301
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1302
* Discontinued obsolete isabelle display tool, and DVI_VIEWER settings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1303
variable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1304
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1305
* The command-line tool "isabelle logo" only outputs PDF; obsolete EPS
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1306
(for DVI documents) has been discontinued. Former option -n has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1307
turned into -o with explicit file name. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1308
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1309
* The command-line tool "isabelle components" supports new options -u
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1310
and -x to manage $ISABELLE_HOME_USER/etc/components without manual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1311
editing of Isabelle configuration files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1312
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1313
* The shell function "isabelle_directory" (within etc/settings of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1314
components) augments the list of special directories for persistent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1315
symbolic path names. This improves portability of heap images and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1316
session databases. It used to be hard-wired for Isabelle + AFP, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1317
other projects may now participate on equal terms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1318
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1319
* The command-line tool "isabelle process" now prints output to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1320
stdout/stderr separately and incrementally, instead of just one bulk to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1321
stdout after termination. Potential INCOMPATIBILITY for external tools.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1322
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1323
* The command-line tool "isabelle console" now supports interrupts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1324
properly (on Linux and macOS).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1325
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1326
* Batch-builds via "isabelle build" use a PIDE session with special
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1327
protocol: this allows to invoke Isabelle/Scala operations from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1328
Isabelle/ML. Big build jobs (e.g. AFP) require extra heap space for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1329
java process, e.g. like this in $ISABELLE_HOME_USER/etc/settings:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1330
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1331
  ISABELLE_TOOL_JAVA_OPTIONS="$ISABELLE_TOOL_JAVA_OPTIONS -Xmx8g"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1332
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1333
This includes full PIDE markup, if option "build_pide_reports" is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1334
enabled.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1335
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1336
* The command-line tool "isabelle build" provides option -P DIR to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1337
produce PDF/HTML presentation in the specified directory; -P: refers to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1338
the standard directory according to ISABELLE_BROWSER_INFO /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1339
ISABELLE_BROWSER_INFO_SYSTEM settings. Generated PDF documents are taken
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1340
from the build database -- from this or earlier builds with option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1341
document=pdf.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1342
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1343
* The command-line tool "isabelle document" generates theory documents
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1344
on the spot, using the underlying session build database (exported
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1345
LaTeX sources or existing PDF files). INCOMPATIBILITY, the former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1346
"isabelle document" tool was rather different and has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1347
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1348
* The command-line tool "isabelle sessions" explores the structure of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1349
Isabelle sessions and prints result names in topological order (on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1350
stdout).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1351
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1352
* The Isabelle/Scala "Progress" interface changed slightly and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1353
"No_Progress" has been discontinued. INCOMPATIBILITY, use "new Progress"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1354
instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1355
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1356
* General support for Isabelle/Scala system services, configured via the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1357
shell function "isabelle_scala_service" in etc/settings (e.g. of an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1358
Isabelle component); see implementations of class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1359
Isabelle_System.Service in Isabelle/Scala. This supersedes former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1360
"isabelle_scala_tools" and "isabelle_file_format": minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1361
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1362
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1363
* The syntax of theory load commands (for auxiliary files) is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1364
specified in Isabelle/Scala, as instance of class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1365
isabelle.Command_Span.Load_Command registered via isabelle_scala_service
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1366
in etc/settings. This allows more flexible schemes than just a list of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1367
file extensions. Minor INCOMPATIBILITY, e.g. see theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1368
HOL-SPARK.SPARK_Setup to emulate the old behaviour.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1369
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1370
* JVM system property "isabelle.laf" has been discontinued; the default
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1371
Swing look-and-feel is ""FlatLaf Light".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1372
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1373
* Isabelle/Phabricator supports Ubuntu 20.04 LTS.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1374
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1375
* Isabelle/Phabricator setup has been updated to follow ongoing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1376
development: libphutil has been discontinued. Minor INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1377
existing server installations should remove libphutil from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1378
/usr/local/bin/isabelle-phabricator-upgrade and each installation root
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1379
directory (e.g. /var/www/phabricator-vcs/libphutil).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1380
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1381
* Experimental support for arm64-linux platform. The reference platform
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1382
is Raspberry Pi 4 with 8 GB RAM running Pi OS (64 bit).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1383
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1384
* Support for Apple Silicon, using mostly x86_64-darwin runtime
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1385
translation via Rosetta 2 (e.g. Poly/ML and external provers), but also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1386
some native arm64-darwin executables (e.g. Java).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1387
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1388
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1389
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1390
New in Isabelle2020 (April 2020)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1391
--------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1392
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1393
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1394
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1395
* Session ROOT files need to specify explicit 'directories' for import
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1396
of theory files. Directories cannot be shared by different sessions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1397
(Recall that import of theories from other sessions works via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1398
session-qualified theory names, together with suitable 'sessions'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1399
declarations in the ROOT.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1400
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1401
* Internal derivations record dependencies on oracles and other theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1402
accurately, including the implicit type-class reasoning wrt. proven
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1403
class relations and type arities. In particular, the formal tagging with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1404
"Pure.skip_proofs" of results stemming from "instance ... sorry" is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1405
propagated properly to theorems depending on such type instances.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1406
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1407
* Command 'sorry' (oracle "Pure.skip_proofs") is more precise about the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1408
actual proposition that is assumed in the goal and proof context. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1409
requires at least Proofterm.proofs = 1 to show up in theorem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1410
dependencies.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1411
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1412
* Command 'thm_oracles' prints all oracles used in given theorems,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1413
covering the full graph of transitive dependencies.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1414
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1415
* Command 'thm_deps' prints immediate theorem dependencies of the given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1416
facts. The former graph visualization has been discontinued, because it
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1417
was hardly usable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1418
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1419
* Refined treatment of proof terms, including type-class proofs for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1420
minor object-logics (FOL, FOLP, Sequents).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1421
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1422
* The inference kernel is now confined to one main module: structure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1423
Thm, without the former circular dependency on structure Axclass.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1424
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1425
* Mixfix annotations may use "' " (single quote followed by space) to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1426
separate delimiters (as documented in the isar-ref manual), without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1427
requiring an auxiliary empty block. A literal single quote needs to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1428
escaped properly. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1429
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1430
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1431
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1432
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1433
* The proof method combinator (subproofs m) applies the method
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1434
expression m consecutively to each subgoal, constructing individual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1435
subproofs internally. This impacts the internal construction of proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1436
terms: it makes a cascade of let-expressions within the derivation tree
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1437
and may thus improve scalability.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1438
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1439
* Attribute "trace_locales" activates tracing of locale instances during
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1440
roundup. It replaces the diagnostic command 'print_dependencies', which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1441
has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1442
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1444
*** Isabelle/jEdit Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1445
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1446
* Prover IDE startup is now much faster, because theory dependencies are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1447
no longer explored in advance. The overall session structure with its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1448
declarations of 'directories' is sufficient to locate theory files. Thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1449
the "session focus" of option "isabelle jedit -S" has become obsolete
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1450
(likewise for "isabelle vscode_server -S"). Existing option "-R" is both
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1451
sufficient and more convenient to start editing a particular session.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1452
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1453
* Actions isabelle.tooltip (CS+b) and isabelle.message (CS+m) display
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1454
tooltip message popups, corresponding to mouse hovering with/without the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1455
CONTROL/COMMAND key pressed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1456
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1457
* The following actions allow to navigate errors within the current
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1458
document snapshot:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1459
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1460
  isabelle.first-error (CS+a)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1461
  isabelle.last-error (CS+z)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1462
  isabelle.next-error (CS+n)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1463
  isabelle.prev-error (CS+p)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1464
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1465
* Support more brackets: \<llangle> \<rrangle> (intended for implicit argument syntax).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1466
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1467
* Action isabelle.jconsole (menu item Plugins / Isabelle / Java/VM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1468
Monitor) applies the jconsole tool on the running Isabelle/jEdit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1469
process. This allows to monitor resource usage etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1470
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1471
* More adequate default font sizes for Linux on HD / UHD displays:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1472
automatic font scaling is usually absent on Linux, in contrast to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1473
Windows and macOS.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1474
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1475
* The default value for the jEdit property "view.antiAlias" (menu item
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1476
Utilities / Global Options / Text Area / Anti Aliased smooth text) is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1477
now "subpixel HRGB", instead of former "standard". Especially on Linux
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1478
this often leads to faster text rendering, but can also cause problems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1479
with odd color shades. An alternative is to switch back to "standard"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1480
here, and set the following Java system property:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1481
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1482
    isabelle jedit -Dsun.java2d.opengl=true
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1483
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1484
This can be made persistent via JEDIT_JAVA_OPTIONS in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1485
$ISABELLE_HOME_USER/etc/settings. For the "Isabelle2020" desktop
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1486
application there is a corresponding options file in the same directory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1487
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1488
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1489
*** Isabelle/VSCode Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1490
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1491
* Update of State and Preview panels to use new WebviewPanel API of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1492
VSCode.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1493
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1494
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1495
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1496
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1497
* Improvements of the 'lift_bnf' command:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1498
  - Add support for quotient types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1499
  - Generate transfer rules for the lifted map/set/rel/pred constants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1500
    (theorems "<type>.<constant>_transfer_raw").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1501
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1502
* Term_XML.Encode/Decode.term uses compact representation of Const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1503
"typargs" from the given declaration environment. This also makes more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1504
sense for translations to lambda-calculi with explicit polymorphism.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1505
INCOMPATIBILITY, use Term_XML.Encode/Decode.term_raw in special
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1506
applications.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1507
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1508
* ASCII membership syntax concerning big operators for infimum and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1509
supremum has been discontinued. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1510
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1511
* Removed multiplicativity assumption from class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1512
"normalization_semidom". Introduced various new intermediate classes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1513
with the multiplicativity assumption; many theorem statements
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1514
(especially involving GCD/LCM) had to be adapted. This allows for a more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1515
natural instantiation of the algebraic typeclasses for e.g. Gaussian
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1516
integers. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1517
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1518
* Clear distinction between types for bits (False / True) and Z2 (0 /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1519
1): theory HOL-Library.Bit has been renamed accordingly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1520
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1521
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1522
* Dynamic facts "algebra_split_simps" and "field_split_simps" correspond
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1523
to algebra_simps and field_simps but contain more aggressive rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1524
potentially splitting goals; algebra_split_simps roughly replaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1525
sign_simps and field_split_simps can be used instead of divide_simps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1526
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1527
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1528
* Theory HOL.Complete_Lattices:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1529
renamed Inf_Sup -> Inf_eq_Sup and Sup_Inf -> Sup_eq_Inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1531
* Theory HOL-Library.Monad_Syntax: infix operation "bind" (\<bind>)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1532
associates to the left now as is customary.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1533
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1534
* Theory HOL-Library.Ramsey: full finite Ramsey's theorem with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1535
multiple colours and arbitrary exponents.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1536
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1537
* Session HOL-Proofs: build faster thanks to better treatment of proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1538
terms in Isabelle/Pure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1539
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1540
* Session HOL-Word: bitwise NOT-operator has proper prefix syntax. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1541
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1542
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1543
* Session HOL-Analysis: proof method "metric" implements a decision
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1544
procedure for simple linear statements in metric spaces.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1545
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1546
* Session HOL-Complex_Analysis has been split off from HOL-Analysis.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1547
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1548
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1549
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1550
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1551
* Theory construction may be forked internally, the operation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1552
Theory.join_theory recovers a single result theory. See also the example
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1553
in theory "HOL-ex.Join_Theory".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1554
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1555
* Antiquotation @{oracle_name} inlines a formally checked oracle name.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1556
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1557
* Minimal support for a soft-type system within the Isabelle logical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1558
framework (module Soft_Type_System).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1559
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1560
* Former Variable.auto_fixes has been replaced by slightly more general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1561
Proof_Context.augment: it is subject to an optional soft-type system of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1562
the underlying object-logic. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1563
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1564
* More scalable Export.export using XML.tree to avoid premature string
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1565
allocations, with convenient shortcut XML.blob. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1566
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1567
* Prover IDE support for the underlying Poly/ML compiler (not the basis
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1568
library). Open $ML_SOURCES/ROOT.ML in Isabelle/jEdit to browse the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1569
implementation with full markup.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1570
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1571
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1572
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1573
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1574
* Standard rendering for more Isabelle symbols: \<llangle> \<rrangle> \<bbar> \<sqdot>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1575
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1576
* The command-line tool "isabelle scala_project" creates a Gradle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1577
project configuration for Isabelle/Scala/jEdit, to support Scala IDEs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1578
such as IntelliJ IDEA.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1579
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1580
* The command-line tool "isabelle phabricator_setup" facilitates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1581
self-hosting of the Phabricator software-development platform, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1582
support for Git, Mercurial, Subversion repositories. This helps to avoid
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1583
monoculture and to escape the gravity of centralized version control by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1584
Github and/or Bitbucket. For further documentation, see chapter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1585
"Phabricator server administration" in the "system" manual. A notable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1586
example installation is https://isabelle-dev.sketis.net/.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1587
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1588
* The command-line tool "isabelle hg_setup" simplifies the setup of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1589
Mercurial repositories, with hosting via Phabricator or SSH file server
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1590
access.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1591
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1592
* The command-line tool "isabelle imports" has been discontinued: strict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1593
checking of session directories enforces session-qualified theory names
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1594
in applications -- users are responsible to specify session ROOT entries
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1595
properly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1596
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1597
* The command-line tool "isabelle dump" and its underlying
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1598
Isabelle/Scala module isabelle.Dump has become more scalable, by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1599
splitting sessions and supporting a base logic image. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1600
INCOMPATIBILITY in options and parameters.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1601
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1602
* The command-line tool "isabelle build_docker" has been slightly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1603
improved: it is now properly documented in the "system" manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1604
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1605
* Isabelle/Scala support for the Linux platform (Ubuntu): packages,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1606
users, system services.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1607
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1608
* Isabelle/Scala support for proof terms (with full type/term
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1609
information) in module isabelle.Term.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1610
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1611
* Isabelle/Scala: more scalable output of YXML files, e.g. relevant for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1612
"isabelle dump".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1613
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1614
* Theory export via Isabelle/Scala has been reworked. The former "fact"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1615
name space is now split into individual "thm" items: names are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1616
potentially indexed, such as "foo" for singleton facts, or "bar(1)",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1617
"bar(2)", "bar(3)" for multi-facts. Theorem dependencies are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1618
exported as well: this spans an overall dependency graph of internal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1619
inferences; it might help to reconstruct the formal structure of theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1620
libraries. See also the module isabelle.Export_Theory in Isabelle/Scala.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1621
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1622
* Theory export of structured specifications, based on internal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1623
declarations of Spec_Rules by packages like 'definition', 'inductive',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1624
'primrec', 'function'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1625
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1626
* Old settings variables ISABELLE_PLATFORM and ISABELLE_WINDOWS_PLATFORM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1627
have been discontinued -- deprecated since Isabelle2018.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1628
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1629
* More complete x86_64 platform support on macOS, notably Catalina where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1630
old x86 has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1631
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1632
* Update to GHC stack 2.1.3 with stackage lts-13.19/ghc-8.6.4.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1633
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1634
* Update to OCaml Opam 2.0.6 (using ocaml 4.05.0 as before).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1635
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1636
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1637
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1638
New in Isabelle2019 (June 2019)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1639
-------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1640
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1641
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1642
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1643
* The font collection "Isabelle DejaVu" is systematically derived from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1644
the existing "DejaVu" fonts, with variants "Sans Mono", "Sans", "Serif"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1645
and styles "Normal", "Bold", "Italic/Oblique", "Bold-Italic/Oblique".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1646
The DejaVu base fonts are retricted to well-defined Unicode ranges and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1647
augmented by special Isabelle symbols, taken from the former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1648
"IsabelleText" font (which is no longer provided separately). The line
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1649
metrics and overall rendering quality is closer to original DejaVu.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1650
INCOMPATIBILITY with display configuration expecting the old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1651
"IsabelleText" font: use e.g. "Isabelle DejaVu Sans Mono" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1652
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1653
* The Isabelle fonts render "\<inverse>" properly as superscript "-1".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1654
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1655
* Old-style inner comments (* ... *) within the term language are no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1656
longer supported (legacy feature in Isabelle2018).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1657
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1658
* Old-style {* verbatim *} tokens are explicitly marked as legacy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1659
feature and will be removed soon. Use \<open>cartouche\<close> syntax instead, e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1660
via "isabelle update_cartouches -t" (available since Isabelle2015).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1661
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1662
* Infix operators that begin or end with a "*" are now parenthesized
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1663
without additional spaces, e.g. "(*)" instead of "( * )". Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1664
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1665
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1666
* Mixfix annotations may use cartouches instead of old-style double
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1667
quotes, e.g. (infixl \<open>+\<close> 60). The command-line tool "isabelle update -u
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1668
mixfix_cartouches" allows to update existing theory sources
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1669
automatically.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1670
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1671
* ML setup commands (e.g. 'setup', 'method_setup', 'parse_translation')
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1672
need to provide a closed expression -- without trailing semicolon. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1673
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1674
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1675
* Commands 'generate_file', 'export_generated_files', and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1676
'compile_generated_files' support a stateless (PIDE-conformant) model
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1677
for generated sources and compiled binaries of other languages. The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1678
compilation process is managed in Isabelle/ML, and results exported to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1679
the session database for further use (e.g. with "isabelle export" or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1680
"isabelle build -e").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1681
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1682
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1683
*** Isabelle/jEdit Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1684
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1685
* Fonts for the text area, gutter, GUI elements etc. use the "Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1686
DejaVu" collection by default, which provides uniform rendering quality
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1687
with the usual Isabelle symbols. Line spacing no longer needs to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1688
adjusted: properties for the old IsabelleText font had "Global Options /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1689
Text Area / Extra vertical line spacing (in pixels): -2", it now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1690
defaults to 1, but 0 works as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1691
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1692
* The jEdit File Browser is more prominent in the default GUI layout of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1693
Isabelle/jEdit: various virtual file-systems provide access to Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1694
resources, notably via "favorites:" (or "Edit Favorites").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1695
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1696
* Further markup and rendering for "plain text" (e.g. informal prose)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1697
and "raw text" (e.g. verbatim sources). This improves the visual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1698
appearance of formal comments inside the term language, or in general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1699
for repeated alternation of formal and informal text.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1700
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1701
* Action "isabelle-export-browser" points the File Browser to the theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1702
exports of the current buffer, based on the "isabelle-export:" virtual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1703
file-system. The directory view needs to be reloaded manually to follow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1704
ongoing document processing.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1705
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1706
* Action "isabelle-session-browser" points the File Browser to session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1707
information, based on the "isabelle-session:" virtual file-system. Its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1708
entries are structured according to chapter / session names, the open
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1709
operation is redirected to the session ROOT file.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1710
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1711
* Support for user-defined file-formats via class isabelle.File_Format
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1712
in Isabelle/Scala (e.g. see isabelle.Bibtex.File_Format), configured via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1713
the shell function "isabelle_file_format" in etc/settings (e.g. of an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1714
Isabelle component).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1715
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1716
* System option "jedit_text_overview" allows to disable the text
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1717
overview column.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1718
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1719
* Command-line options "-s" and "-u" of "isabelle jedit" override the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1720
default for system option "system_heaps" that determines the heap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1721
storage directory for "isabelle build". Option "-n" is now clearly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1722
separated from option "-s".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1723
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1724
* The Isabelle/jEdit desktop application uses the same options as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1725
"isabelle jedit" for its internal "isabelle build" process: the implicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1726
option "-o system_heaps" (or "-s") has been discontinued. This reduces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1727
the potential for surprise wrt. command-line tools.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1728
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1729
* The official download of the Isabelle/jEdit application already
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1730
contains heap images for Isabelle/HOL within its main directory: thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1731
the first encounter becomes faster and more robust (e.g. when run from a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1732
read-only directory).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1733
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1734
* Isabelle DejaVu fonts are available with hinting by default, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1735
relevant for low-resolution displays. This may be disabled via system
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1736
option "isabelle_fonts_hinted = false" in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1737
$ISABELLE_HOME_USER/etc/preferences -- it occasionally yields better
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1738
results.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1739
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1740
* OpenJDK 11 has quite different font rendering, with better glyph
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1741
shapes and improved sub-pixel anti-aliasing. In some situations results
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1742
might be *worse* than Oracle Java 8, though -- a proper HiDPI / UHD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1743
display is recommended.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1744
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1745
* OpenJDK 11 supports GTK version 2.2 and 3 (according to system
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1746
property jdk.gtk.version). The factory default is version 3, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1747
ISABELLE_JAVA_SYSTEM_OPTIONS includes "-Djdk.gtk.version=2.2" to make
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1748
this more conservative (as in Java 8). Depending on the GTK theme
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1749
configuration, "-Djdk.gtk.version=3" might work better or worse.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1751
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1752
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1753
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1754
* Document markers are formal comments of the form \<^marker>\<open>marker_body\<close> that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1755
are stripped from document output: the effect is to modify the semantic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1756
presentation context or to emit markup to the PIDE document. Some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1757
predefined markers are taken from the Dublin Core Metadata Initiative,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1758
e.g. \<^marker>\<open>contributor arg\<close> or \<^marker>\<open>license arg\<close> and produce PIDE markup that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1759
can be retrieved from the document database.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1760
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1761
* Old-style command tags %name are re-interpreted as markers with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1762
proof-scope \<^marker>\<open>tag (proof) name\<close> and produce LaTeX environments as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1763
before. Potential INCOMPATIBILITY: multiple markers are composed in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1764
canonical order, resulting in a reversed list of tags in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1765
presentation context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1766
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1767
* Marker \<^marker>\<open>tag name\<close> does not apply to the proof of a top-level goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1768
statement by default (e.g. 'theorem', 'lemma'). This is a subtle change
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1769
of semantics wrt. old-style %name.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1770
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1771
* In Isabelle/jEdit, the string "\tag" may be completed to a "\<^marker>\<open>tag \<close>"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1772
template.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1773
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1774
* Document antiquotation option "cartouche" indicates if the output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1775
should be delimited as cartouche; this takes precedence over the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1776
analogous option "quotes".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1777
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1778
* Many document antiquotations are internally categorized as "embedded"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1779
and expect one cartouche argument, which is typically used with the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1780
\<^control>\<open>cartouche\<close> notation (e.g. \<^term>\<open>\<lambda>x y. x\<close>). The cartouche
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1781
delimiters are stripped in output of the source (antiquotation option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1782
"source"), but it is possible to enforce delimiters via option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1783
"source_cartouche", e.g. @{term [source_cartouche] \<open>\<lambda>x y. x\<close>}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1784
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1785
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1786
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1787
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1788
* Implicit cases goal1, goal2, goal3, etc. have been discontinued
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1789
(legacy feature since Isabelle2016).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1790
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1791
* More robust treatment of structural errors: begin/end blocks take
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1792
precedence over goal/proof. This is particularly relevant for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1793
headless PIDE session and server.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1794
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1795
* Command keywords of kind thy_decl / thy_goal may be more specifically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1796
fit into the traditional document model of "definition-statement-proof"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1797
via thy_defn / thy_stmt / thy_goal_defn / thy_goal_stmt.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1798
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1799
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1800
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1801
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1802
* Command 'export_code' produces output as logical files within the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1803
theory context, as well as formal session exports that can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1804
materialized via command-line tools "isabelle export" or "isabelle build
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1805
-e" (with 'export_files' in the session ROOT). Isabelle/jEdit also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1806
provides a virtual file-system "isabelle-export:" that can be explored
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1807
in the regular file-browser. A 'file_prefix' argument allows to specify
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1808
an explicit name prefix for the target file (SML, OCaml, Scala) or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1809
directory (Haskell); the default is "export" with a consecutive number
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1810
within each theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1811
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1812
* Command 'export_code': the 'file' argument is now legacy and will be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1813
removed soon: writing to the physical file-system is not well-defined in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1814
a reactive/parallel application like Isabelle. The empty 'file' argument
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1815
has been discontinued already: it is superseded by the file-browser in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1816
Isabelle/jEdit on "isabelle-export:". Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1817
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1818
* Command 'code_reflect' no longer supports the 'file' argument: it has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1819
been superseded by 'file_prefix' for stateless file management as in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1820
'export_code'. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1821
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1822
* Code generation for OCaml: proper strings are used for literals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1823
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1824
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1825
* Code generation for OCaml: Zarith supersedes Nums as library for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1826
proper integer arithmetic. The library is located via standard
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1827
invocations of "ocamlfind" (via ISABELLE_OCAMLFIND settings variable).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1828
The environment provided by "isabelle ocaml_setup" already contains this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1829
tool and the required packages. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1830
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1831
* Code generation for Haskell: code includes for Haskell must contain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1832
proper module frame, nothing is added magically any longer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1833
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1834
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1835
* Code generation: slightly more conventional syntax for 'code_stmts'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1836
antiquotation. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1837
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1838
* Theory List: the precedence of the list_update operator has changed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1839
"f a [n := x]" now needs to be written "(f a)[n := x]".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1840
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1841
* The functions \<Union>, \<Inter>, \<Squnion>, \<Sqinter> (not the corresponding binding operators)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1842
now have the same precedence as any other prefix function symbol. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1843
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1844
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1845
* Simplified syntax setup for big operators under image. In rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1846
situations, type conversions are not inserted implicitly any longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1847
and need to be given explicitly. Auxiliary abbreviations INFIMUM,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1848
SUPREMUM, UNION, INTER should now rarely occur in output and are just
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1849
retained as migration auxiliary. Abbreviations MINIMUM and MAXIMUM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1850
are gone INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1851
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1852
* The simplifier uses image_cong_simp as a congruence rule. The historic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1853
and not really well-formed congruence rules INF_cong*, SUP_cong*, are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1854
not used by default any longer. INCOMPATIBILITY; consider using declare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1855
image_cong_simp [cong del] in extreme situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1856
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1857
* INF_image and SUP_image are no default simp rules any longer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1858
INCOMPATIBILITY, prefer image_comp as simp rule if needed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1859
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1860
* Strong congruence rules (with =simp=> in the premises) for constant f
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1861
are now uniformly called f_cong_simp, in accordance with congruence
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1862
rules produced for mappers by the datatype package. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1863
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1864
* Retired lemma card_Union_image; use the simpler card_UN_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1865
instead. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1866
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1867
* Facts sum_mset.commute and prod_mset.commute have been renamed to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1868
sum_mset.swap and prod_mset.swap, similarly to sum.swap and prod.swap.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1869
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1870
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1871
* ML structure Inductive: slightly more conventional naming schema.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1872
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1873
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1874
* ML: Various _global variants of specification tools have been removed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1875
Minor INCOMPATIBILITY, prefer combinators
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1876
Named_Target.theory_map[_result] to lift specifications to the global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1877
theory level.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1878
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1879
* Theory HOL-Library.Simps_Case_Conv: 'case_of_simps' now supports
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1880
overlapping and non-exhaustive patterns and handles arbitrarily nested
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1881
patterns. It uses on the same algorithm as HOL-Library.Code_Lazy, which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1882
assumes sequential left-to-right pattern matching. The generated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1883
equation no longer tuples the arguments on the right-hand side.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1884
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1885
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1886
* Theory HOL-Library.Multiset: the \<Union># operator now has the same
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1887
precedence as any other prefix function symbol.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1888
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1889
* Theory HOL-Library.Cardinal_Notations has been discontinued in favor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1890
of the bundle cardinal_syntax (available in theory Main). Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1891
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1892
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1893
* Session HOL-Library and HOL-Number_Theory: Exponentiation by squaring,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1894
used for computing powers in class "monoid_mult" and modular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1895
exponentiation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1896
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1897
* Session HOL-Computational_Algebra: Formal Laurent series and overhaul
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1898
of Formal power series.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1899
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1900
* Session HOL-Number_Theory: More material on residue rings in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1901
Carmichael's function, primitive roots, more properties for "ord".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1902
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1903
* Session HOL-Analysis: Better organization and much more material
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1904
at the level of abstract topological spaces.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1905
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1906
* Session HOL-Algebra: Free abelian groups, etc., ported from HOL Light;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1907
 algebraic closure of a field by de Vilhena and Baillon.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1908
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1909
* Session HOL-Homology has been added. It is a port of HOL Light's
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1910
homology library, with new proofs of "invariance of domain" and related
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1911
results.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1912
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1913
* Session HOL-SPARK: .prv files are no longer written to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1914
file-system, but exported to the session database. Results may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1915
retrieved via "isabelle build -e HOL-SPARK-Examples" on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1916
command-line.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1917
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1918
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1919
  - The URL for SystemOnTPTP, which is used by remote provers, has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1920
    updated.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1921
  - The machine-learning-based filter MaSh has been optimized to take
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1922
    less time (in most cases).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1924
* SMT: reconstruction is now possible using the SMT solver veriT.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1925
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1926
* Session HOL-Word:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1927
  * New theory More_Word as comprehensive entrance point.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1928
  * Merged type class bitss into type class bits.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1929
  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1930
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1931
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1932
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1933
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1934
* Command 'generate_file' allows to produce sources for other languages,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1935
with antiquotations in the Isabelle context (only the control-cartouche
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1936
form). The default "cartouche" antiquotation evaluates an ML expression
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1937
of type string and inlines the result as a string literal of the target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1938
language. For example, this works for Haskell as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1939
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1940
  generate_file "Pure.hs" = \<open>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1941
  module Isabelle.Pure where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1942
    allConst, impConst, eqConst :: String
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1943
    allConst = \<open>\<^const_name>\<open>Pure.all\<close>\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1944
    impConst = \<open>\<^const_name>\<open>Pure.imp\<close>\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1945
    eqConst = \<open>\<^const_name>\<open>Pure.eq\<close>\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1946
  \<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1947
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1948
See also commands 'export_generated_files' and 'compile_generated_files'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1949
to use the results.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1950
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1951
* ML evaluation (notably via command 'ML' or 'ML_file') is subject to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1952
option ML_environment to select a named environment, such as "Isabelle"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1953
for Isabelle/ML, or "SML" for official Standard ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1954
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1955
* ML antiquotation @{master_dir} refers to the master directory of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1956
underlying theory, i.e. the directory of the theory file.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1957
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1958
* ML antiquotation @{verbatim} inlines its argument as string literal,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1959
preserving newlines literally. The short form \<^verbatim>\<open>abc\<close> is particularly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1960
useful.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1961
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1962
* Local_Theory.reset is no longer available in user space. Regular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1963
definitional packages should use balanced blocks of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1964
Local_Theory.open_target versus Local_Theory.close_target instead, or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1965
the Local_Theory.subtarget(_result) combinator. Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1966
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1967
* Original PolyML.pointerEq is retained as a convenience for tools that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1968
don't use Isabelle/ML (where this is called "pointer_eq").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1969
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1970
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1971
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1972
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1973
* Update to OpenJDK 11: the current long-term support version of Java.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1974
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1975
* Update to Poly/ML 5.8 allows to use the native x86_64 platform without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1976
the full overhead of 64-bit values everywhere. This special x86_64_32
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1977
mode provides up to 16GB ML heap, while program code and stacks are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1978
allocated elsewhere. Thus approx. 5 times more memory is available for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1979
applications compared to old x86 mode (which is no longer used by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1980
Isabelle). The switch to the x86_64 CPU architecture also avoids
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1981
compatibility problems with Linux and macOS, where 32-bit applications
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1982
are gradually phased out.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1983
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1984
* System option "checkpoint" has been discontinued: obsolete thanks to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1985
improved memory management in Poly/ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1986
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1987
* System option "system_heaps" determines where to store the session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1988
image of "isabelle build" (and other tools using that internally).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1989
Former option "-s" is superseded by option "-o system_heaps".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1990
INCOMPATIBILITY in command-line syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1991
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1992
* Session directory $ISABELLE_HOME/src/Tools/Haskell provides some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1993
source modules for Isabelle tools implemented in Haskell, notably for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1994
Isabelle/PIDE.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1995
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1996
* The command-line tool "isabelle build -e" retrieves theory exports
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1997
from the session build database, using 'export_files' in session ROOT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1998
entries.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  1999
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2000
* The command-line tool "isabelle update" uses Isabelle/PIDE in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2001
batch-mode to update theory sources based on semantic markup produced in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2002
Isabelle/ML. Actual updates depend on system options that may be enabled
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2003
via "-u OPT" (for "update_OPT"), see also $ISABELLE_HOME/etc/options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2004
section "Theory update". Theory sessions are specified as in "isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2005
dump".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2006
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2007
* The command-line tool "isabelle update -u control_cartouches" changes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2008
antiquotations into control-symbol format (where possible): @{NAME}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2009
becomes \<^NAME> and @{NAME ARG} becomes \<^NAME>\<open>ARG\<close>.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2010
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2011
* Support for Isabelle command-line tools defined in Isabelle/Scala.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2012
Instances of class Isabelle_Scala_Tools may be configured via the shell
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2013
function "isabelle_scala_tools" in etc/settings (e.g. of an Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2014
component).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2015
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2016
* Isabelle Server command "use_theories" supports "nodes_status_delay"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2017
for continuous output of node status information. The time interval is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2018
specified in seconds; a negative value means it is disabled (default).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2019
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2020
* Isabelle Server command "use_theories" terminates more robustly in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2021
presence of structurally broken sources: full consolidation of theories
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2022
is no longer required.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2023
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2024
* OCaml tools and libraries are now accesed via ISABELLE_OCAMLFIND,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2025
which needs to point to a suitable version of "ocamlfind" (e.g. via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2026
OPAM, see below). INCOMPATIBILITY: settings variables ISABELLE_OCAML and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2027
ISABELLE_OCAMLC are no longer supported.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2028
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2029
* Support for managed installations of Glasgow Haskell Compiler and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2030
OCaml via the following command-line tools:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2031
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2032
  isabelle ghc_setup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2033
  isabelle ghc_stack
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2034
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2035
  isabelle ocaml_setup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2036
  isabelle ocaml_opam
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2037
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2038
The global installation state is determined by the following settings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2039
(and corresponding directory contents):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2040
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2041
  ISABELLE_STACK_ROOT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2042
  ISABELLE_STACK_RESOLVER
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2043
  ISABELLE_GHC_VERSION
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2044
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2045
  ISABELLE_OPAM_ROOT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2046
  ISABELLE_OCAML_VERSION
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2047
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2048
After setup, the following Isabelle settings are automatically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2049
redirected (overriding existing user settings):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2050
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2051
  ISABELLE_GHC
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2052
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2053
  ISABELLE_OCAMLFIND
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2054
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2055
The old meaning of these settings as locally installed executables may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2056
be recovered by purging the directories ISABELLE_STACK_ROOT /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2057
ISABELLE_OPAM_ROOT, or by resetting these variables in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2058
$ISABELLE_HOME_USER/etc/settings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2059
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2060
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2061
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2062
New in Isabelle2018 (August 2018)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2063
---------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2064
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2065
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2066
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2067
* Session-qualified theory names are mandatory: it is no longer possible
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2068
to refer to unqualified theories from the parent session.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2069
INCOMPATIBILITY for old developments that have not been updated to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2070
Isabelle2017 yet (using the "isabelle imports" tool).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2071
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2072
* Only the most fundamental theory names are global, usually the entry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2073
points to major logic sessions: Pure, Main, Complex_Main, HOLCF, IFOL,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2074
FOL, ZF, ZFC etc. INCOMPATIBILITY, need to use qualified names for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2075
formerly global "HOL-Probability.Probability" and "HOL-SPARK.SPARK".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2076
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2077
* Global facts need to be closed: no free variables and no hypotheses.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2078
Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2079
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2080
* Facts stemming from locale interpretation are subject to lazy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2081
evaluation for improved performance. Rare INCOMPATIBILITY: errors
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2082
stemming from interpretation morphisms might be deferred and thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2083
difficult to locate; enable system option "strict_facts" temporarily to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2084
avoid this.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2085
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2086
* Marginal comments need to be written exclusively in the new-style form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2087
"\<comment> \<open>text\<close>", old ASCII variants like "-- {* ... *}" are no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2088
supported. INCOMPATIBILITY, use the command-line tool "isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2089
update_comments" to update existing theory files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2090
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2091
* Old-style inner comments (* ... *) within the term language are legacy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2092
and will be discontinued soon: use formal comments "\<comment> \<open>...\<close>" or "\<^cancel>\<open>...\<close>"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2093
instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2094
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2095
* The "op <infix-op>" syntax for infix operators has been replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2096
"(<infix-op>)". If <infix-op> begins or ends with a "*", there needs to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2097
be a space between the "*" and the corresponding parenthesis.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2098
INCOMPATIBILITY, use the command-line tool "isabelle update_op" to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2099
convert theory and ML files to the new syntax. Because it is based on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2100
regular expression matching, the result may need a bit of manual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2101
postprocessing. Invoking "isabelle update_op" converts all files in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2102
current directory (recursively). In case you want to exclude conversion
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2103
of ML files (because the tool frequently also converts ML's "op"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2104
syntax), use option "-m".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2105
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2106
* Theory header 'abbrevs' specifications need to be separated by 'and'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2107
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2108
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2109
* Command 'external_file' declares the formal dependency on the given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2110
file name, such that the Isabelle build process knows about it, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2111
without specific Prover IDE management.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2112
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2113
* Session ROOT entries no longer allow specification of 'files'. Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2114
INCOMPATIBILITY, use command 'external_file' within a proper theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2115
context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2116
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2117
* Session root directories may be specified multiple times: each
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2118
accessible ROOT file is processed only once. This facilitates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2119
specification of $ISABELLE_HOME_USER/ROOTS or command-line options like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2120
-d or -D for "isabelle build" and "isabelle jedit". Example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2121
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2122
  isabelle build -D '~~/src/ZF'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2123
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2124
* The command 'display_drafts' has been discontinued. INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2125
use action "isabelle.draft" (or "print") in Isabelle/jEdit instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2126
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2127
* In HTML output, the Isabelle symbol "\<hyphen>" is rendered as explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2128
Unicode hyphen U+2010, to avoid unclear meaning of the old "soft hyphen"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2129
U+00AD. Rare INCOMPATIBILITY, e.g. copy-paste of historic Isabelle HTML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2130
output.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2131
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2132
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2133
*** Isabelle/jEdit Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2134
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2135
* The command-line tool "isabelle jedit" provides more flexible options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2136
for session management:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2137
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2138
  - option -R builds an auxiliary logic image with all theories from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2139
    other sessions that are not already present in its parent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2140
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2141
  - option -S is like -R, with a focus on the selected session and its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2142
    descendants (this reduces startup time for big projects like AFP)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2143
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2144
  - option -A specifies an alternative ancestor session for options -R
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2145
    and -S
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2146
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2147
  - option -i includes additional sessions into the name-space of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2148
    theories
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2149
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2150
  Examples:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2151
    isabelle jedit -R HOL-Number_Theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2152
    isabelle jedit -R HOL-Number_Theory -A HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2153
    isabelle jedit -d '$AFP' -S Formal_SSA -A HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2154
    isabelle jedit -d '$AFP' -S Formal_SSA -A HOL-Analysis
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2155
    isabelle jedit -d '$AFP' -S Formal_SSA -A HOL-Analysis -i CryptHOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2156
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2157
* PIDE markup for session ROOT files: allows to complete session names,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2158
follow links to theories and document files etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2159
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2160
* Completion supports theory header imports, using theory base name.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2161
E.g. "Prob" may be completed to "HOL-Probability.Probability".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2162
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2163
* Named control symbols (without special Unicode rendering) are shown as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2164
bold-italic keyword. This is particularly useful for the short form of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2165
antiquotations with control symbol: \<^name>\<open>argument\<close>. The action
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2166
"isabelle.antiquoted_cartouche" turns an antiquotation with 0 or 1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2167
arguments into this format.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2168
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2169
* Completion provides templates for named symbols with arguments,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2170
e.g. "\<comment> \<open>ARGUMENT\<close>" or "\<^emph>\<open>ARGUMENT\<close>".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2171
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2172
* Slightly more parallel checking, notably for high priority print
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2173
functions (e.g. State output).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2174
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2175
* The view title is set dynamically, according to the Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2176
distribution and the logic session name. The user can override this via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2177
set-view-title (stored persistently in $JEDIT_SETTINGS/perspective.xml).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2178
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2179
* System options "spell_checker_include" and "spell_checker_exclude"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2180
supersede former "spell_checker_elements" to determine regions of text
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2181
that are subject to spell-checking. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2182
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2183
* Action "isabelle.preview" is able to present more file formats,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2184
notably bibtex database files and ML files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2185
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2186
* Action "isabelle.draft" is similar to "isabelle.preview", but shows a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2187
plain-text document draft. Both are available via the menu "Plugins /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2188
Isabelle".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2189
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2190
* When loading text files, the Isabelle symbols encoding UTF-8-Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2191
is only used if there is no conflict with existing Unicode sequences in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2192
the file. Otherwise, the fallback encoding is plain UTF-8 and Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2193
symbols remain in literal \<symbol> form. This avoids accidental loss of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2194
Unicode content when saving the file.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2195
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2196
* Bibtex database files (.bib) are semantically checked.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2197
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2198
* Update to jedit-5.5.0, the latest release.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2199
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2200
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2201
*** Isabelle/VSCode Prover IDE ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2202
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2203
* HTML preview of theories and other file-formats similar to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2204
Isabelle/jEdit.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2205
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2206
* Command-line tool "isabelle vscode_server" accepts the same options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2207
-A, -R, -S, -i for session selection as "isabelle jedit". This is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2208
relevant for isabelle.args configuration settings in VSCode. The former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2209
option -A (explore all known session files) has been discontinued: it is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2210
enabled by default, unless option -S is used to focus on a particular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2211
spot in the session structure. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2212
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2213
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2214
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2215
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2216
* Formal comments work uniformly in outer syntax, inner syntax (term
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2217
language), Isabelle/ML and some other embedded languages of Isabelle.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2218
See also "Document comments" in the isar-ref manual. The following forms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2219
are supported:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2220
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2221
  - marginal text comment: \<comment> \<open>\<dots>\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2222
  - canceled source: \<^cancel>\<open>\<dots>\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2223
  - raw LaTeX: \<^latex>\<open>\<dots>\<close>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2224
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2225
* Outside of the inner theory body, the default presentation context is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2226
theory Pure. Thus elementary antiquotations may be used in markup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2227
commands (e.g. 'chapter', 'section', 'text') and formal comments.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2228
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2229
* System option "document_tags" specifies alternative command tags. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2230
is occasionally useful to control the global visibility of commands via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2231
session options (e.g. in ROOT).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2232
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2233
* Document markup commands ('section', 'text' etc.) are implicitly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2234
tagged as "document" and visible by default. This avoids the application
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2235
of option "document_tags" to these commands.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2236
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2237
* Isabelle names are mangled into LaTeX macro names to allow the full
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2238
identifier syntax with underscore, prime, digits. This is relevant for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2239
antiquotations in control symbol notation, e.g. \<^const_name> becomes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2240
\isactrlconstUNDERSCOREname.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2241
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2242
* Document preparation with skip_proofs option now preserves the content
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2243
more accurately: only terminal proof steps ('by' etc.) are skipped.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2244
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2245
* Document antiquotation @{theory name} requires the long
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2246
session-qualified theory name: this is what users reading the text
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2247
normally need to import.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2248
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2249
* Document antiquotation @{session name} checks and prints the given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2250
session name verbatim.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2251
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2252
* Document antiquotation @{cite} now checks the given Bibtex entries
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2253
against the Bibtex database files -- only in batch-mode session builds.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2254
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2255
* Command-line tool "isabelle document" has been re-implemented in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2256
Isabelle/Scala, with simplified arguments and explicit errors from the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2257
latex and bibtex process. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2258
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2259
* Session ROOT entry: empty 'document_files' means there is no document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2260
for this session. There is no need to specify options [document = false]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2261
anymore.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2262
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2263
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2264
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2265
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2266
* Command 'interpret' no longer exposes resulting theorems as literal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2267
facts, notably for the \<open>prop\<close> notation or the "fact" proof method. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2268
improves modularity of proofs and scalability of locale interpretation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2269
Rare INCOMPATIBILITY, need to refer to explicitly named facts instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2270
(e.g. use 'find_theorems' or 'try' to figure this out).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2271
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2272
* The old 'def' command has been discontinued (legacy since
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2273
Isbelle2016-1). INCOMPATIBILITY, use 'define' instead -- usually with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2274
object-logic equality or equivalence.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2275
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2276
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2277
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2278
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2279
* The inner syntax category "sort" now includes notation "_" for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2280
dummy sort: it is effectively ignored in type-inference.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2281
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2282
* Rewrites clauses (keyword 'rewrites') were moved into the locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2283
expression syntax, where they are part of locale instances. In
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2284
interpretation commands rewrites clauses now need to occur before 'for'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2285
and 'defines'. Rare INCOMPATIBILITY; definitions immediately subject to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2286
rewriting may need to be pulled up into the surrounding theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2287
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2288
* For 'rewrites' clauses, if activating a locale instance fails, fall
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2289
back to reading the clause first. This helps avoid qualification of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2290
locale instances where the qualifier's sole purpose is avoiding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2291
duplicate constant declarations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2292
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2293
* Proof method "simp" now supports a new modifier "flip:" followed by a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2294
list of theorems. Each of these theorems is removed from the simpset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2295
(without warning if it is not there) and the symmetric version of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2296
theorem (i.e. lhs and rhs exchanged) is added to the simpset. For "auto"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2297
and friends the modifier is "simp flip:".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2298
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2299
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2300
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2301
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2302
* Sledgehammer: bundled version of "vampire" (for non-commercial users)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2303
helps to avoid fragility of "remote_vampire" service.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2304
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2305
* Clarified relationship of characters, strings and code generation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2306
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2307
  - Type "char" is now a proper datatype of 8-bit values.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2308
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2309
  - Conversions "nat_of_char" and "char_of_nat" are gone; use more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2310
    general conversions "of_char" and "char_of" with suitable type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2311
    constraints instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2312
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2313
  - The zero character is just written "CHR 0x00", not "0" any longer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2314
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2315
  - Type "String.literal" (for code generation) is now isomorphic to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2316
    lists of 7-bit (ASCII) values; concrete values can be written as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2317
    "STR ''...''" for sequences of printable characters and "STR 0x..."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2318
    for one single ASCII code point given as hexadecimal numeral.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2319
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2320
  - Type "String.literal" supports concatenation "... + ..." for all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2321
    standard target languages.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2322
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2323
  - Theory HOL-Library.Code_Char is gone; study the explanations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2324
    concerning "String.literal" in the tutorial on code generation to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2325
    get an idea how target-language string literals can be converted to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2326
    HOL string values and vice versa.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2327
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2328
  - Session Imperative-HOL: operation "raise" directly takes a value of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2329
    type "String.literal" as argument, not type "string".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2330
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2331
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2332
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2333
* Code generation: Code generation takes an explicit option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2334
"case_insensitive" to accomodate case-insensitive file systems.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2335
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2336
* Abstract bit operations as part of Main: push_bit, take_bit, drop_bit.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2337
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2338
* New, more general, axiomatization of complete_distrib_lattice. The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2339
former axioms:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2340
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2341
  "sup x (Inf X) = Inf (sup x ` X)" and "inf x (Sup X) = Sup (inf x ` X)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2342
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2343
are replaced by:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2344
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2345
  "Inf (Sup ` A) <= Sup (Inf ` {f ` A | f . (! Y \<in> A . f Y \<in> Y)})"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2346
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2347
The instantiations of sets and functions as complete_distrib_lattice are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2348
moved to Hilbert_Choice.thy because their proofs need the Hilbert choice
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2349
operator. The dual of this property is also proved in theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2350
HOL.Hilbert_Choice.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2351
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2352
* New syntax for the minimum/maximum of a function over a finite set:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2353
MIN x\<in>A. B and even MIN x. B (only useful for finite types), also MAX.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2354
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2355
* Clarifed theorem names:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2356
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2357
  Min.antimono ~> Min.subset_imp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2358
  Max.antimono ~> Max.subset_imp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2359
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2360
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2361
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2362
* SMT module:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2363
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2364
  - The 'smt_oracle' option is now necessary when using the 'smt' method
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2365
    with a solver other than Z3. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2366
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2367
  - The encoding to first-order logic is now more complete in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2368
    presence of higher-order quantifiers. An 'smt_explicit_application'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2369
    option has been added to control this. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2370
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2371
* Facts sum.commute(_restrict) and prod.commute(_restrict) renamed to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2372
sum.swap(_restrict) and prod.swap(_restrict), to avoid name clashes on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2373
interpretation of abstract locales. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2374
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2375
* Predicate coprime is now a real definition, not a mere abbreviation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2376
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2377
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2378
* Predicate pairwise_coprime abolished, use "pairwise coprime" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2379
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2380
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2381
* The relator rel_filter on filters has been strengthened to its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2382
canonical categorical definition with better properties.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2383
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2384
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2385
* Generalized linear algebra involving linear, span, dependent, dim
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2386
from type class real_vector to locales module and vector_space.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2387
Renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2388
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2389
  span_inc ~> span_superset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2390
  span_superset ~> span_base
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2391
  span_eq ~> span_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2392
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2393
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2394
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2395
* Class linordered_semiring_1 covers zero_less_one also, ruling out
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2396
pathologic instances. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2397
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2398
* Theory HOL.List: functions "sorted_wrt" and "sorted" now compare every
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2399
element in a list to all following elements, not just the next one.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2400
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2401
* Theory HOL.List syntax:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2402
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2403
  - filter-syntax "[x <- xs. P]" is no longer output syntax, but only
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2404
    input syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2405
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2406
  - list comprehension syntax now supports tuple patterns in "pat <- xs"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2407
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2408
* Theory Map: "empty" must now be qualified as "Map.empty".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2409
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2410
* Removed nat-int transfer machinery. Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2411
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2412
* Fact mod_mult_self4 (on nat) renamed to Suc_mod_mult_self3, to avoid
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2413
clash with fact mod_mult_self4 (on more generic semirings).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2414
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2415
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2416
* Eliminated some theorem aliasses:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2417
  even_times_iff ~> even_mult_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2418
  mod_2_not_eq_zero_eq_one_nat ~> not_mod_2_eq_0_eq_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2419
  even_of_nat ~> even_int_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2420
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2421
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2422
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2423
* Eliminated some theorem duplicate variations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2424
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2425
  - dvd_eq_mod_eq_0_numeral can be replaced by dvd_eq_mod_eq_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2426
  - mod_Suc_eq_Suc_mod can be replaced by mod_Suc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2427
  - mod_Suc_eq_Suc_mod [symmetrict] can be replaced by mod_simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2428
  - mod_eq_0_iff can be replaced by mod_eq_0_iff_dvd and dvd_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2429
  - the witness of mod_eqD can be given directly as "_ div _"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2430
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2431
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2432
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2433
* Classical setup: Assumption "m mod d = 0" (for m d :: nat) is no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2434
longer aggresively destroyed to "\<exists>q. m = d * q". INCOMPATIBILITY, adding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2435
"elim!: dvd" to classical proof methods in most situations restores
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2436
broken proofs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2437
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2438
* Theory HOL-Library.Conditional_Parametricity provides command
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2439
'parametric_constant' for proving parametricity of non-recursive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2440
definitions. For constants that are not fully parametric the command
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2441
will infer conditions on relations (e.g., bi_unique, bi_total, or type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2442
class conditions such as "respects 0") sufficient for parametricity. See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2443
theory HOL-ex.Conditional_Parametricity_Examples for some examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2444
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2445
* Theory HOL-Library.Code_Lazy provides a new preprocessor for the code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2446
generator to generate code for algebraic types with lazy evaluation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2447
semantics even in call-by-value target languages. See the theories
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2448
HOL-ex.Code_Lazy_Demo and HOL-Codegenerator_Test.Code_Lazy_Test for some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2449
examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2450
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2451
* Theory HOL-Library.Landau_Symbols has been moved here from AFP.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2452
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2453
* Theory HOL-Library.Old_Datatype no longer provides the legacy command
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2454
'old_datatype'. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2455
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2456
* Theory HOL-Computational_Algebra.Polynomial_Factorial does not provide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2457
instances of rat, real, complex as factorial rings etc. Import
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2458
HOL-Computational_Algebra.Field_as_Ring explicitly in case of need.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2459
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2460
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2461
* Session HOL-Algebra: renamed (^) to [^] to avoid conflict with new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2462
infix/prefix notation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2463
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2464
* Session HOL-Algebra: revamped with much new material. The set of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2465
isomorphisms between two groups is now denoted iso rather than iso_set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2466
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2467
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2468
* Session HOL-Analysis: the Arg function now respects the same interval
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2469
as Ln, namely (-pi,pi]; the old Arg function has been renamed Arg2pi.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2470
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2471
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2472
* Session HOL-Analysis: the functions zorder, zer_poly, porder and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2473
pol_poly have been redefined. All related lemmas have been reworked.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2474
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2475
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2476
* Session HOL-Analysis: infinite products, Moebius functions, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2477
Riemann mapping theorem, the Vitali covering theorem,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2478
change-of-variables results for integration and measures.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2479
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2480
* Session HOL-Real_Asymp: proof method "real_asymp" proves asymptotics
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2481
or real-valued functions (limits, "Big-O", etc.) automatically.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2482
See also ~~/src/HOL/Real_Asymp/Manual for some documentation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2483
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2484
* Session HOL-Types_To_Sets: more tool support (unoverload_type combines
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2485
internalize_sorts and unoverload) and larger experimental application
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2486
(type based linear algebra transferred to linear algebra on subspaces).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2487
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2488
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2489
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2490
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2491
* Operation Export.export emits theory exports (arbitrary blobs), which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2492
are stored persistently in the session build database.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2493
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2494
* Command 'ML_export' exports ML toplevel bindings to the global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2495
bootstrap environment of the ML process. This allows ML evaluation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2496
without a formal theory context, e.g. in command-line tools like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2497
"isabelle process".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2498
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2499
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2500
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2501
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2502
* Mac OS X 10.10 Yosemite is now the baseline version; Mavericks is no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2503
longer supported.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2504
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2505
* Linux and Windows/Cygwin is for x86_64 only, old 32bit platform
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2506
support has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2507
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2508
* Java runtime is for x86_64 only. Corresponding Isabelle settings have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2509
been renamed to ISABELLE_TOOL_JAVA_OPTIONS and JEDIT_JAVA_OPTIONS,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2510
instead of former 32/64 variants. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2511
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2512
* Old settings ISABELLE_PLATFORM and ISABELLE_WINDOWS_PLATFORM should be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2513
phased out due to unclear preference of 32bit vs. 64bit architecture.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2514
Explicit GNU bash expressions are now preferred, for example (with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2515
quotes):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2516
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2517
  #Posix executables (Unix or Cygwin), with preference for 64bit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2518
  "${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM32}"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2519
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2520
  #native Windows or Unix executables, with preference for 64bit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2521
  "${ISABELLE_WINDOWS_PLATFORM64:-${ISABELLE_WINDOWS_PLATFORM32:-${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM32}}}"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2522
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2523
  #native Windows (32bit) or Unix executables (preference for 64bit)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2524
  "${ISABELLE_WINDOWS_PLATFORM32:-${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM32}}"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2525
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2526
* Command-line tool "isabelle build" supports new options:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2527
  - option -B NAME: include session NAME and all descendants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2528
  - option -S: only observe changes of sources, not heap images
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2529
  - option -f: forces a fresh build
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2531
* Command-line tool "isabelle build" options -c -x -B refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2532
descendants wrt. the session parent or import graph. Subtle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2533
INCOMPATIBILITY: options -c -x used to refer to the session parent graph
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2534
only.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2535
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2536
* Command-line tool "isabelle build" takes "condition" options with the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2537
corresponding environment values into account, when determining the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2538
up-to-date status of a session.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2539
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2540
* The command-line tool "dump" dumps information from the cumulative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2541
PIDE session database: many sessions may be loaded into a given logic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2542
image, results from all loaded theories are written to the output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2543
directory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2544
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2545
* Command-line tool "isabelle imports -I" also reports actual session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2546
imports. This helps to minimize the session dependency graph.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2547
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2548
* The command-line tool "export" and 'export_files' in session ROOT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2549
entries retrieve theory exports from the session build database.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2550
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2551
* The command-line tools "isabelle server" and "isabelle client" provide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2552
access to the Isabelle Server: it supports responsive session management
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2553
and concurrent use of theories, based on Isabelle/PIDE infrastructure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2554
See also the "system" manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2555
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2556
* The command-line tool "isabelle update_comments" normalizes formal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2557
comments in outer syntax as follows: \<comment> \<open>text\<close> (whith a single space to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2558
approximate the appearance in document output). This is more specific
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2559
than former "isabelle update_cartouches -c": the latter tool option has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2560
been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2561
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2562
* The command-line tool "isabelle mkroot" now always produces a document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2563
outline: its options have been adapted accordingly. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2564
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2565
* The command-line tool "isabelle mkroot -I" initializes a Mercurial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2566
repository for the generated session files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2567
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2568
* Settings ISABELLE_HEAPS + ISABELLE_BROWSER_INFO (or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2569
ISABELLE_HEAPS_SYSTEM + ISABELLE_BROWSER_INFO_SYSTEM in "system build
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2570
mode") determine the directory locations of the main build artefacts --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2571
instead of hard-wired directories in ISABELLE_HOME_USER (or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2572
ISABELLE_HOME).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2573
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2574
* Settings ISABELLE_PATH and ISABELLE_OUTPUT have been discontinued:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2575
heap images and session databases are always stored in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2576
$ISABELLE_HEAPS/$ML_IDENTIFIER (command-line default) or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2577
$ISABELLE_HEAPS_SYSTEM/$ML_IDENTIFIER (main Isabelle application or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2578
"isabelle jedit -s" or "isabelle build -s").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2579
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2580
* ISABELLE_LATEX and ISABELLE_PDFLATEX now include platform-specific
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2581
options for improved error reporting. Potential INCOMPATIBILITY with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2582
unusual LaTeX installations, may have to adapt these settings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2583
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2584
* Update to Poly/ML 5.7.1 with slightly improved performance and PIDE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2585
markup for identifier bindings. It now uses The GNU Multiple Precision
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2586
Arithmetic Library (libgmp) on all platforms, notably Mac OS X with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2587
32/64 bit.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2588
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2589
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2590
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2591
New in Isabelle2017 (October 2017)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2592
----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2593
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2594
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2595
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2596
* Experimental support for Visual Studio Code (VSCode) as alternative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2597
Isabelle/PIDE front-end, see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2598
https://marketplace.visualstudio.com/items?itemName=makarius.Isabelle2017
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2599
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2600
VSCode is a new type of application that continues the concepts of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2601
"programmer's editor" and "integrated development environment" towards
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2602
fully semantic editing and debugging -- in a relatively light-weight
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2603
manner. Thus it fits nicely on top of the Isabelle/PIDE infrastructure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2604
Technically, VSCode is based on the Electron application framework
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2605
(Node.js + Chromium browser + V8), which is implemented in JavaScript
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2606
and TypeScript, while Isabelle/VSCode mainly consists of Isabelle/Scala
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2607
modules around a Language Server implementation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2608
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2609
* Theory names are qualified by the session name that they belong to.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2610
This affects imports, but not the theory name space prefix (which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2611
just the theory base name as before).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2612
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2613
In order to import theories from other sessions, the ROOT file format
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2614
provides a new 'sessions' keyword. In contrast, a theory that is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2615
imported in the old-fashioned manner via an explicit file-system path
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2616
belongs to the current session, and might cause theory name conflicts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2617
later on. Theories that are imported from other sessions are excluded
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2618
from the current session document. The command-line tool "isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2619
imports" helps to update theory imports.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2620
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2621
* The main theory entry points for some non-HOL sessions have changed,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2622
to avoid confusion with the global name "Main" of the session HOL. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2623
leads to the follow renamings:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2624
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2625
  CTT/Main.thy    ~>  CTT/CTT.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2626
  ZF/Main.thy     ~>  ZF/ZF.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2627
  ZF/Main_ZF.thy  ~>  ZF/ZF.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2628
  ZF/Main_ZFC.thy ~>  ZF/ZFC.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2629
  ZF/ZF.thy       ~>  ZF/ZF_Base.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2630
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2631
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2632
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2633
* Commands 'alias' and 'type_alias' introduce aliases for constants and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2634
type constructors, respectively. This allows adhoc changes to name-space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2635
accesses within global or local theory contexts, e.g. within a 'bundle'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2636
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2637
* Document antiquotations @{prf} and @{full_prf} output proof terms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2638
(again) in the same way as commands 'prf' and 'full_prf'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2639
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2640
* Computations generated by the code generator can be embedded directly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2641
into ML, alongside with @{code} antiquotations, using the following
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2642
antiquotations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2643
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2644
  @{computation ... terms: ... datatypes: ...} :
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2645
    ((term -> term) -> 'ml option -> 'a) -> Proof.context -> term -> 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2646
  @{computation_conv ... terms: ... datatypes: ...} :
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2647
    (Proof.context -> 'ml -> conv) -> Proof.context -> conv
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2648
  @{computation_check terms: ... datatypes: ...} : Proof.context -> conv
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2649
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2650
See src/HOL/ex/Computations.thy,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2651
src/HOL/Decision_Procs/Commutative_Ring.thy and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2652
src/HOL/Decision_Procs/Reflective_Field.thy for examples and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2653
tutorial on code generation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2654
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2655
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2656
*** Prover IDE -- Isabelle/Scala/jEdit ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2657
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2658
* Session-qualified theory imports allow the Prover IDE to process
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2659
arbitrary theory hierarchies independently of the underlying logic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2660
session image (e.g. option "isabelle jedit -l"), but the directory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2661
structure needs to be known in advance (e.g. option "isabelle jedit -d"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2662
or a line in the file $ISABELLE_HOME_USER/ROOTS).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2663
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2664
* The PIDE document model maintains file content independently of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2665
status of jEdit editor buffers. Reloading jEdit buffers no longer causes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2666
changes of formal document content. Theory dependencies are always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2667
resolved internally, without the need for corresponding editor buffers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2668
The system option "jedit_auto_load" has been discontinued: it is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2669
effectively always enabled.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2670
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2671
* The Theories dockable provides a "Purge" button, in order to restrict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2672
the document model to theories that are required for open editor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2673
buffers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2674
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2675
* The Theories dockable indicates the overall status of checking of each
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2676
entry. When all forked tasks of a theory are finished, the border is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2677
painted with thick lines; remaining errors in this situation are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2678
represented by a different border color.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2679
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2680
* Automatic indentation is more careful to avoid redundant spaces in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2681
intermediate situations. Keywords are indented after input (via typed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2682
characters or completion); see also option "jedit_indent_input".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2683
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2684
* Action "isabelle.preview" opens an HTML preview of the current theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2685
document in the default web browser.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2686
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2687
* Command-line invocation "isabelle jedit -R -l LOGIC" opens the ROOT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2688
entry of the specified logic session in the editor, while its parent is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2689
used for formal checking.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2690
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2691
* The main Isabelle/jEdit plugin may be restarted manually (using the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2692
jEdit Plugin Manager), as long as the "Isabelle Base" plugin remains
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2693
enabled at all times.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2694
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2695
* Update to current jedit-5.4.0.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2696
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2697
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2698
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2699
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2700
* Deleting the last code equations for a particular function using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2701
[code del] results in function with no equations (runtime abort) rather
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2702
than an unimplemented function (generation time abort). Use explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2703
[[code drop:]] to enforce the latter. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2704
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2705
* Proper concept of code declarations in code.ML:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2706
  - Regular code declarations act only on the global theory level, being
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2707
    ignored with warnings if syntactically malformed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2708
  - Explicitly global code declarations yield errors if syntactically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2709
    malformed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2710
  - Default code declarations are silently ignored if syntactically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2711
    malformed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2712
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2713
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2714
* Clarified and standardized internal data bookkeeping of code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2715
declarations: history of serials allows to track potentially
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2716
non-monotonous declarations appropriately. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2717
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2718
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2719
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2720
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2721
* The Nunchaku model finder is now part of "Main".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2722
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2723
* SMT module:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2724
  - A new option, 'smt_nat_as_int', has been added to translate 'nat' to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2725
    'int' and benefit from the SMT solver's theory reasoning. It is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2726
    disabled by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2727
  - The legacy module "src/HOL/Library/Old_SMT.thy" has been removed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2728
  - Several small issues have been rectified in the 'smt' command.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2729
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2730
* (Co)datatype package: The 'size_gen_o_map' lemma is no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2731
generated for datatypes with type class annotations. As a result, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2732
tactic that derives it no longer fails on nested datatypes. Slight
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2733
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2734
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2735
* Command and antiquotation "value" with modified default strategy:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2736
terms without free variables are always evaluated using plain evaluation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2737
only, with no fallback on normalization by evaluation. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2738
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2739
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2740
* Theories "GCD" and "Binomial" are already included in "Main" (instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2741
of "Complex_Main").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2742
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2743
* Constant "surj" is a full input/output abbreviation (again).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2744
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2745
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2746
* Dropped aliasses RangeP, DomainP for Rangep, Domainp respectively.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2747
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2748
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2749
* Renamed ii to imaginary_unit in order to free up ii as a variable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2750
name. The syntax \<i> remains available. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2751
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2752
* Dropped abbreviations transP, antisymP, single_valuedP; use constants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2753
transp, antisymp, single_valuedp instead. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2754
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2755
* Constant "subseq" in Topological_Spaces has been removed -- it is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2756
subsumed by "strict_mono". Some basic lemmas specific to "subseq" have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2757
been renamed accordingly, e.g. "subseq_o" -> "strict_mono_o" etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2758
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2759
* Theory List: "sublist" renamed to "nths" in analogy with "nth", and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2760
"sublisteq" renamed to "subseq". Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2761
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2762
* Theory List: new generic function "sorted_wrt".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2763
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2764
* Named theorems mod_simps covers various congruence rules concerning
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2765
mod, replacing former zmod_simps. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2766
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2767
* Swapped orientation of congruence rules mod_add_left_eq,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2768
mod_add_right_eq, mod_add_eq, mod_mult_left_eq, mod_mult_right_eq,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2769
mod_mult_eq, mod_minus_eq, mod_diff_left_eq, mod_diff_right_eq,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2770
mod_diff_eq. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2771
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2772
* Generalized some facts:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2773
    measure_induct_rule
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2774
    measure_induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2775
    zminus_zmod ~> mod_minus_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2776
    zdiff_zmod_left ~> mod_diff_left_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2777
    zdiff_zmod_right ~> mod_diff_right_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2778
    zmod_eq_dvd_iff ~> mod_eq_dvd_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2779
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2780
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2781
* Algebraic type class hierarchy of euclidean (semi)rings in HOL:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2782
euclidean_(semi)ring, euclidean_(semi)ring_cancel,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2783
unique_euclidean_(semi)ring; instantiation requires provision of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2784
euclidean size.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2785
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2786
* Theory "HOL-Number_Theory.Euclidean_Algorithm" has been reworked:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2787
  - Euclidean induction is available as rule eucl_induct.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2788
  - Constants Euclidean_Algorithm.gcd, Euclidean_Algorithm.lcm,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2789
    Euclidean_Algorithm.Gcd and Euclidean_Algorithm.Lcm allow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2790
    easy instantiation of euclidean (semi)rings as GCD (semi)rings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2791
  - Coefficients obtained by extended euclidean algorithm are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2792
    available as "bezout_coefficients".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2793
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2794
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2795
* Theory "Number_Theory.Totient" introduces basic notions about Euler's
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2796
totient function previously hidden as solitary example in theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2797
Residues. Definition changed so that "totient 1 = 1" in agreement with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2798
the literature. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2799
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2800
* New styles in theory "HOL-Library.LaTeXsugar":
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2801
  - "dummy_pats" for printing equations with "_" on the lhs;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2802
  - "eta_expand" for printing eta-expanded terms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2803
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2804
* Theory "HOL-Library.Permutations": theorem bij_swap_ompose_bij has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2805
been renamed to bij_swap_compose_bij. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2806
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2807
* New theory "HOL-Library.Going_To_Filter" providing the "f going_to F"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2808
filter for describing points x such that f(x) is in the filter F.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2809
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2810
* Theory "HOL-Library.Formal_Power_Series": constants X/E/L/F have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2811
renamed to fps_X/fps_exp/fps_ln/fps_hypergeo to avoid polluting the name
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2812
space. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2813
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2814
* Theory "HOL-Library.FinFun" has been moved to AFP (again).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2815
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2816
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2817
* Theory "HOL-Library.FuncSet": some old and rarely used ASCII
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2818
replacement syntax has been removed. INCOMPATIBILITY, standard syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2819
with symbols should be used instead. The subsequent commands help to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2820
reproduce the old forms, e.g. to simplify porting old theories:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2821
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2822
syntax (ASCII)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2823
  "_PiE" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b set \<Rightarrow> ('a \<Rightarrow> 'b) set"  ("(3PIE _:_./ _)" 10)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2824
  "_Pi"  :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b set \<Rightarrow> ('a \<Rightarrow> 'b) set"  ("(3PI _:_./ _)" 10)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2825
  "_lam" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'a \<Rightarrow> 'b \<Rightarrow> ('a \<Rightarrow> 'b)"  ("(3%_:_./ _)" [0,0,3] 3)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2826
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2827
* Theory "HOL-Library.Multiset": the simprocs on subsets operators of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2828
multisets have been renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2829
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2830
  msetless_cancel_numerals ~> msetsubset_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2831
  msetle_cancel_numerals ~> msetsubset_eq_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2832
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2833
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2834
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2835
* Theory "HOL-Library.Pattern_Aliases" provides input and output syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2836
for pattern aliases as known from Haskell, Scala and ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2837
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2838
* Theory "HOL-Library.Uprod" formalizes the type of unordered pairs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2839
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2840
* Session HOL-Analysis: more material involving arcs, paths, covering
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2841
spaces, innessential maps, retracts, infinite products, simplicial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2842
complexes. Baire Category theorem. Major results include the Jordan
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2843
Curve Theorem and the Great Picard Theorem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2844
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2845
* Session HOL-Algebra has been extended by additional lattice theory:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2846
the Knaster-Tarski fixed point theorem and Galois Connections.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2847
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2848
* Sessions HOL-Computational_Algebra and HOL-Number_Theory: new notions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2849
of squarefreeness, n-th powers, and prime powers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2850
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2851
* Session "HOL-Computional_Algebra" covers many previously scattered
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2852
theories, notably Euclidean_Algorithm, Factorial_Ring,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2853
Formal_Power_Series, Fraction_Field, Fundamental_Theorem_Algebra,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2854
Normalized_Fraction, Polynomial_FPS, Polynomial, Primes. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2855
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2856
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2857
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2858
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2859
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2860
* Isabelle/Scala: the SQL module supports access to relational
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2861
databases, either as plain file (SQLite) or full-scale server
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2862
(PostgreSQL via local port or remote ssh connection).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2863
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2864
* Results of "isabelle build" are recorded as SQLite database (i.e.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2865
"Application File Format" in the sense of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2866
https://www.sqlite.org/appfileformat.html). This allows systematic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2867
access via operations from module Sessions.Store in Isabelle/Scala.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2868
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2869
* System option "parallel_proofs" is 1 by default (instead of more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2870
aggressive 2). This requires less heap space and avoids burning parallel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2871
CPU cycles, while full subproof parallelization is enabled for repeated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2872
builds (according to parallel_subproofs_threshold).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2873
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2874
* System option "record_proofs" allows to change the global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2875
Proofterm.proofs variable for a session. Regular values are are 0, 1, 2;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2876
a negative value means the current state in the ML heap image remains
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2877
unchanged.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2878
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2879
* Isabelle settings variable ISABELLE_SCALA_BUILD_OPTIONS has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2880
renamed to ISABELLE_SCALAC_OPTIONS. Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2881
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2882
* Isabelle settings variables ISABELLE_WINDOWS_PLATFORM,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2883
ISABELLE_WINDOWS_PLATFORM32, ISABELLE_WINDOWS_PLATFORM64 indicate the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2884
native Windows platform (independently of the Cygwin installation). This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2885
is analogous to ISABELLE_PLATFORM, ISABELLE_PLATFORM32,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2886
ISABELLE_PLATFORM64.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2887
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2888
* Command-line tool "isabelle build_docker" builds a Docker image from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2889
the Isabelle application bundle for Linux. See also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2890
https://hub.docker.com/r/makarius/isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2891
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2892
* Command-line tool "isabelle vscode_server" provides a Language Server
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2893
Protocol implementation, e.g. for the Visual Studio Code editor. It
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2894
serves as example for alternative PIDE front-ends.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2895
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2896
* Command-line tool "isabelle imports" helps to maintain theory imports
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2897
wrt. session structure. Examples for the main Isabelle distribution:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2899
  isabelle imports -I -a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2900
  isabelle imports -U -a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2901
  isabelle imports -U -i -a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2902
  isabelle imports -M -a -d '~~/src/Benchmarks'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2903
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2904
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2905
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2906
New in Isabelle2016-1 (December 2016)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2907
-------------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2908
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2909
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2910
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2911
* Splitter in proof methods "simp", "auto" and friends:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2912
  - The syntax "split add" has been discontinued, use plain "split",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2913
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2914
  - For situations with many conditional or case expressions, there is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2915
    an alternative splitting strategy that can be much faster. It is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2916
    selected by writing "split!" instead of "split". It applies safe
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2917
    introduction and elimination rules after each split rule. As a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2918
    result the subgoal may be split into several subgoals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2919
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2920
* Command 'bundle' provides a local theory target to define a bundle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2921
from the body of specification commands (such as 'declare',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2922
'declaration', 'notation', 'lemmas', 'lemma'). For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2924
bundle foo
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2925
begin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2926
  declare a [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2927
  declare b [intro]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2928
end
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2929
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2930
* Command 'unbundle' is like 'include', but works within a local theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2931
context. Unlike "context includes ... begin", the effect of 'unbundle'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2932
on the target context persists, until different declarations are given.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2933
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2934
* Simplified outer syntax: uniform category "name" includes long
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2935
identifiers. Former "xname" / "nameref" / "name reference" has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2936
discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2937
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2938
* Embedded content (e.g. the inner syntax of types, terms, props) may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2939
delimited uniformly via cartouches. This works better than old-fashioned
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2940
quotes when sub-languages are nested.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2941
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2942
* Mixfix annotations support general block properties, with syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2943
"(\<open>x=a y=b z \<dots>\<close>". Notable property names are "indent", "consistent",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2944
"unbreakable", "markup". The existing notation "(DIGITS" is equivalent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2945
to "(\<open>indent=DIGITS\<close>". The former notation "(00" for unbreakable blocks
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2946
is superseded by "(\<open>unbreabable\<close>" --- rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2947
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2948
* Proof method "blast" is more robust wrt. corner cases of Pure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2949
statements without object-logic judgment.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2950
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2951
* Commands 'prf' and 'full_prf' are somewhat more informative (again):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2952
proof terms are reconstructed and cleaned from administrative thm nodes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2953
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2954
* Code generator: config option "code_timing" triggers measurements of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2955
different phases of code generation. See src/HOL/ex/Code_Timing.thy for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2956
examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2957
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2958
* Code generator: implicits in Scala (stemming from type class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2959
instances) are generated into companion object of corresponding type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2960
class, to resolve some situations where ambiguities may occur.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2961
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2962
* Solve direct: option "solve_direct_strict_warnings" gives explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2963
warnings for lemma statements with trivial proofs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2964
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2965
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2966
*** Prover IDE -- Isabelle/Scala/jEdit ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2967
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2968
* More aggressive flushing of machine-generated input, according to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2969
system option editor_generated_input_delay (in addition to existing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2970
editor_input_delay for regular user edits). This may affect overall PIDE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2971
reactivity and CPU usage.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2972
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2973
* Syntactic indentation according to Isabelle outer syntax. Action
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2974
"indent-lines" (shortcut C+i) indents the current line according to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2975
command keywords and some command substructure. Action
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2976
"isabelle.newline" (shortcut ENTER) indents the old and the new line
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2977
according to command keywords only; see also option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2978
"jedit_indent_newline".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2979
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2980
* Semantic indentation for unstructured proof scripts ('apply' etc.) via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2981
number of subgoals. This requires information of ongoing document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2982
processing and may thus lag behind, when the user is editing too
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2983
quickly; see also option "jedit_script_indent" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2984
"jedit_script_indent_limit".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2985
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2986
* Refined folding mode "isabelle" based on Isar syntax: 'next' and 'qed'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2987
are treated as delimiters for fold structure; 'begin' and 'end'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2988
structure of theory specifications is treated as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2989
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2990
* Command 'proof' provides information about proof outline with cases,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2991
e.g. for proof methods "cases", "induct", "goal_cases".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2992
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2993
* Completion templates for commands involving "begin ... end" blocks,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2994
e.g. 'context', 'notepad'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2995
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2996
* Sidekick parser "isabelle-context" shows nesting of context blocks
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2997
according to 'begin' and 'end' structure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2998
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  2999
* Highlighting of entity def/ref positions wrt. cursor.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3000
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3001
* Action "isabelle.select-entity" (shortcut CS+ENTER) selects all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3002
occurrences of the formal entity at the caret position. This facilitates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3003
systematic renaming.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3004
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3005
* PIDE document markup works across multiple Isar commands, e.g. the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3006
results established at the end of a proof are properly identified in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3007
theorem statement.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3008
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3009
* Cartouche abbreviations work both for " and ` to accomodate typical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3010
situations where old ASCII notation may be updated.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3011
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3012
* Dockable window "Symbols" also provides access to 'abbrevs' from the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3013
outer syntax of the current theory buffer. This provides clickable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3014
syntax templates, including entries with empty abbrevs name (which are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3015
inaccessible via keyboard completion).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3016
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3017
* IDE support for the Isabelle/Pure bootstrap process, with the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3018
following independent stages:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3019
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3020
  src/Pure/ROOT0.ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3021
  src/Pure/ROOT.ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3022
  src/Pure/Pure.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3023
  src/Pure/ML_Bootstrap.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3024
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3025
The ML ROOT files act like quasi-theories in the context of theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3026
ML_Bootstrap: this allows continuous checking of all loaded ML files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3027
The theory files are presented with a modified header to import Pure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3028
from the running Isabelle instance. Results from changed versions of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3029
each stage are *not* propagated to the next stage, and isolated from the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3030
actual Isabelle/Pure that runs the IDE itself. The sequential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3031
dependencies of the above files are only observed for batch build.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3032
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3033
* Isabelle/ML and Standard ML files are presented in Sidekick with the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3034
tree structure of section headings: this special comment format is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3035
described in "implementation" chapter 0, e.g. (*** section ***).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3036
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3037
* Additional abbreviations for syntactic completion may be specified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3038
within the theory header as 'abbrevs'. The theory syntax for 'keywords'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3039
has been simplified accordingly: optional abbrevs need to go into the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3040
new 'abbrevs' section.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3041
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3042
* Global abbreviations via $ISABELLE_HOME/etc/abbrevs and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3043
$ISABELLE_HOME_USER/etc/abbrevs are no longer supported. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3044
INCOMPATIBILITY, use 'abbrevs' within theory header instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3045
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3046
* Action "isabelle.keymap-merge" asks the user to resolve pending
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3047
Isabelle keymap changes that are in conflict with the current jEdit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3048
keymap; non-conflicting changes are always applied implicitly. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3049
action is automatically invoked on Isabelle/jEdit startup and thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3050
increases chances that users see new keyboard shortcuts when re-using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3051
old keymaps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3052
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3053
* ML and document antiquotations for file-systems paths are more uniform
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3054
and diverse:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3055
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3056
  @{path NAME}   -- no file-system check
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3057
  @{file NAME}   -- check for plain file
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3058
  @{dir NAME}    -- check for directory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3059
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3060
Minor INCOMPATIBILITY, former uses of @{file} and @{file_unchecked} may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3061
have to be changed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3062
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3063
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3064
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3065
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3066
* New symbol \<circle>, e.g. for temporal operator.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3067
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3068
* New document and ML antiquotation @{locale} for locales, similar to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3069
existing antiquotation @{class}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3070
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3071
* Mixfix annotations support delimiters like \<^control>\<open>cartouche\<close> --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3072
this allows special forms of document output.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3073
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3074
* Raw LaTeX output now works via \<^latex>\<open>...\<close> instead of raw control
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3075
symbol \<^raw:...>. INCOMPATIBILITY, notably for LaTeXsugar.thy and its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3076
derivatives.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3077
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3078
* \<^raw:...> symbols are no longer supported.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3079
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3080
* Old 'header' command is no longer supported (legacy since
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3081
Isabelle2015).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3082
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3083
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3084
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3085
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3086
* Many specification elements support structured statements with 'if' /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3087
'for' eigen-context, e.g. 'axiomatization', 'abbreviation',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3088
'definition', 'inductive', 'function'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3089
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3090
* Toplevel theorem statements support eigen-context notation with 'if' /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3091
'for' (in postfix), which corresponds to 'assumes' / 'fixes' in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3092
traditional long statement form (in prefix). Local premises are called
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3093
"that" or "assms", respectively. Empty premises are *not* bound in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3094
context: INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3095
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3096
* Command 'define' introduces a local (non-polymorphic) definition, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3097
optional abstraction over local parameters. The syntax resembles
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3098
'definition' and 'obtain'. It fits better into the Isar language than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3099
old 'def', which is now a legacy feature.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3100
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3101
* Command 'obtain' supports structured statements with 'if' / 'for'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3102
context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3103
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3104
* Command '\<proof>' is an alias for 'sorry', with different
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3105
typesetting. E.g. to produce proof holes in examples and documentation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3106
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3107
* The defining position of a literal fact \<open>prop\<close> is maintained more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3108
carefully, and made accessible as hyperlink in the Prover IDE.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3109
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3110
* Commands 'finally' and 'ultimately' used to expose the result as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3111
literal fact: this accidental behaviour has been discontinued. Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3112
INCOMPATIBILITY, use more explicit means to refer to facts in Isar.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3113
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3114
* Command 'axiomatization' has become more restrictive to correspond
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3115
better to internal axioms as singleton facts with mandatory name. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3116
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3117
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3118
* Proof methods may refer to the main facts via the dynamic fact
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3119
"method_facts". This is particularly useful for Eisbach method
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3120
definitions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3121
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3122
* Proof method "use" allows to modify the main facts of a given method
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3123
expression, e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3124
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3125
  (use facts in simp)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3126
  (use facts in \<open>simp add: ...\<close>)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3127
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3128
* The old proof method "default" has been removed (legacy since
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3129
Isabelle2016). INCOMPATIBILITY, use "standard" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3130
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3131
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3132
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3133
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3134
* Pure provides basic versions of proof methods "simp" and "simp_all"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3135
that only know about meta-equality (==). Potential INCOMPATIBILITY in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3136
theory imports that merge Pure with e.g. Main of Isabelle/HOL: the order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3137
is relevant to avoid confusion of Pure.simp vs. HOL.simp.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3138
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3139
* The command 'unfolding' and proof method "unfold" include a second
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3140
stage where given equations are passed through the attribute "abs_def"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3141
before rewriting. This ensures that definitions are fully expanded,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3142
regardless of the actual parameters that are provided. Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3143
INCOMPATIBILITY in some corner cases: use proof method (simp only:)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3144
instead, or declare [[unfold_abs_def = false]] in the proof context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3145
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3146
* Type-inference improves sorts of newly introduced type variables for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3147
the object-logic, using its base sort (i.e. HOL.type for Isabelle/HOL).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3148
Thus terms like "f x" or "\<And>x. P x" without any further syntactic context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3149
produce x::'a::type in HOL instead of x::'a::{} in Pure. Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3150
INCOMPATIBILITY, need to provide explicit type constraints for Pure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3151
types where this is really intended.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3152
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3153
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3154
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3155
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3156
* New proof method "argo" using the built-in Argo solver based on SMT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3157
technology. The method can be used to prove goals of quantifier-free
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3158
propositional logic, goals based on a combination of quantifier-free
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3159
propositional logic with equality, and goals based on a combination of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3160
quantifier-free propositional logic with linear real arithmetic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3161
including min/max/abs. See HOL/ex/Argo_Examples.thy for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3162
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3163
* The new "nunchaku" command integrates the Nunchaku model finder. The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3164
tool is experimental. See ~~/src/HOL/Nunchaku/Nunchaku.thy for details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3165
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3166
* Metis: The problem encoding has changed very slightly. This might
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3167
break existing proofs. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3168
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3169
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3170
  - The MaSh relevance filter is now faster than before.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3171
  - Produce syntactically correct Vampire 4.0 problem files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3172
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3173
* (Co)datatype package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3174
  - New commands for defining corecursive functions and reasoning about
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3175
    them in "~~/src/HOL/Library/BNF_Corec.thy": 'corec', 'corecursive',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3176
    'friend_of_corec', and 'corecursion_upto'; and 'corec_unique' proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3177
    method. See 'isabelle doc corec'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3178
  - The predicator :: ('a \<Rightarrow> bool) \<Rightarrow> 'a F \<Rightarrow> bool is now a first-class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3179
    citizen in bounded natural functors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3180
  - 'primrec' now allows nested calls through the predicator in addition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3181
    to the map function.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3182
  - 'bnf' automatically discharges reflexive proof obligations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3183
  - 'bnf' outputs a slightly modified proof obligation expressing rel in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3184
       terms of map and set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3185
       (not giving a specification for rel makes this one reflexive).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3186
  - 'bnf' outputs a new proof obligation expressing pred in terms of set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3187
       (not giving a specification for pred makes this one reflexive).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3188
    INCOMPATIBILITY: manual 'bnf' declarations may need adjustment.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3189
  - Renamed lemmas:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3190
      rel_prod_apply ~> rel_prod_inject
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3191
      pred_prod_apply ~> pred_prod_inject
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3192
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3193
  - The "size" plugin has been made compatible again with locales.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3194
  - The theorems about "rel" and "set" may have a slightly different (but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3195
    equivalent) form.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3196
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3197
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3198
* The 'coinductive' command produces a proper coinduction rule for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3199
mutual coinductive predicates. This new rule replaces the old rule,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3200
which exposed details of the internal fixpoint construction and was
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3201
hard to use. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3202
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3203
* New abbreviations for negated existence (but not bounded existence):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3204
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3205
  \<nexists>x. P x \<equiv> \<not> (\<exists>x. P x)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3206
  \<nexists>!x. P x \<equiv> \<not> (\<exists>!x. P x)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3207
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3208
* The print mode "HOL" for ASCII syntax of binders "!", "?", "?!", "@"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3209
has been removed for output. It is retained for input only, until it is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3210
eliminated altogether.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3211
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3212
* The unique existence quantifier no longer provides 'binder' syntax,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3213
but uses syntax translations (as for bounded unique existence). Thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3214
iterated quantification \<exists>!x y. P x y with its slightly confusing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3215
sequential meaning \<exists>!x. \<exists>!y. P x y is no longer possible. Instead,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3216
pattern abstraction admits simultaneous unique existence \<exists>!(x, y). P x y
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3217
(analogous to existing notation \<exists>!(x, y)\<in>A. P x y). Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3218
INCOMPATIBILITY in rare situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3219
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3220
* Conventional syntax "%(). t" for unit abstractions. Slight syntactic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3221
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3222
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3223
* Renamed constants and corresponding theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3224
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3225
    setsum ~> sum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3226
    setprod ~> prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3227
    listsum ~> sum_list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3228
    listprod ~> prod_list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3229
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3230
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3231
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3232
* Sligthly more standardized theorem names:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3233
    sgn_times ~> sgn_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3234
    sgn_mult' ~> Real_Vector_Spaces.sgn_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3235
    divide_zero_left ~> div_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3236
    zero_mod_left ~> mod_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3237
    divide_zero ~> div_by_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3238
    divide_1 ~> div_by_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3239
    nonzero_mult_divide_cancel_left ~> nonzero_mult_div_cancel_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3240
    div_mult_self1_is_id ~> nonzero_mult_div_cancel_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3241
    nonzero_mult_divide_cancel_right ~> nonzero_mult_div_cancel_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3242
    div_mult_self2_is_id ~> nonzero_mult_div_cancel_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3243
    is_unit_divide_mult_cancel_left ~> is_unit_div_mult_cancel_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3244
    is_unit_divide_mult_cancel_right ~> is_unit_div_mult_cancel_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3245
    mod_div_equality ~> div_mult_mod_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3246
    mod_div_equality2 ~> mult_div_mod_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3247
    mod_div_equality3 ~> mod_div_mult_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3248
    mod_div_equality4 ~> mod_mult_div_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3249
    minus_div_eq_mod ~> minus_div_mult_eq_mod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3250
    minus_div_eq_mod2 ~> minus_mult_div_eq_mod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3251
    minus_mod_eq_div ~> minus_mod_eq_div_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3252
    minus_mod_eq_div2 ~> minus_mod_eq_mult_div
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3253
    div_mod_equality' ~> minus_mod_eq_div_mult [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3254
    mod_div_equality' ~> minus_div_mult_eq_mod [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3255
    zmod_zdiv_equality ~> mult_div_mod_eq [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3256
    zmod_zdiv_equality' ~> minus_div_mult_eq_mod [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3257
    Divides.mult_div_cancel ~> minus_mod_eq_mult_div [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3258
    mult_div_cancel ~> minus_mod_eq_mult_div [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3259
    zmult_div_cancel ~> minus_mod_eq_mult_div [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3260
    div_1 ~> div_by_Suc_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3261
    mod_1 ~> mod_by_Suc_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3262
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3263
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3264
* New type class "idom_abs_sgn" specifies algebraic properties
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3265
of sign and absolute value functions.  Type class "sgn_if" has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3266
disappeared.  Slight INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3267
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3268
* Dedicated syntax LENGTH('a) for length of types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3269
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3270
* Characters (type char) are modelled as finite algebraic type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3271
corresponding to {0..255}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3272
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3273
  - Logical representation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3274
    * 0 is instantiated to the ASCII zero character.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3275
    * All other characters are represented as "Char n"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3276
      with n being a raw numeral expression less than 256.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3277
    * Expressions of the form "Char n" with n greater than 255
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3278
      are non-canonical.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3279
  - Printing and parsing:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3280
    * Printable characters are printed and parsed as "CHR ''\<dots>''"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3281
      (as before).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3282
    * The ASCII zero character is printed and parsed as "0".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3283
    * All other canonical characters are printed as "CHR 0xXX"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3284
      with XX being the hexadecimal character code.  "CHR n"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3285
      is parsable for every numeral expression n.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3286
    * Non-canonical characters have no special syntax and are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3287
      printed as their logical representation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3288
  - Explicit conversions from and to the natural numbers are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3289
    provided as char_of_nat, nat_of_char (as before).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3290
  - The auxiliary nibble type has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3291
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3292
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3293
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3294
* Type class "div" with operation "mod" renamed to type class "modulo"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3295
with operation "modulo", analogously to type class "divide". This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3296
eliminates the need to qualify any of those names in the presence of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3297
infix "mod" syntax. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3298
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3299
* Statements and proofs of Knaster-Tarski fixpoint combinators lfp/gfp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3300
have been clarified. The fixpoint properties are lfp_fixpoint, its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3301
symmetric lfp_unfold (as before), and the duals for gfp. Auxiliary items
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3302
for the proof (lfp_lemma2 etc.) are no longer exported, but can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3303
easily recovered by composition with eq_refl. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3304
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3305
* Constant "surj" is a mere input abbreviation, to avoid hiding an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3306
equation in term output. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3308
* Command 'code_reflect' accepts empty constructor lists for datatypes,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3309
which renders those abstract effectively.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3310
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3311
* Command 'export_code' checks given constants for abstraction
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3312
violations: a small guarantee that given constants specify a safe
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3313
interface for the generated code.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3314
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3315
* Code generation for Scala: ambiguous implicts in class diagrams are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3316
spelt out explicitly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3317
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3318
* Static evaluators (Code_Evaluation.static_* in Isabelle/ML) rely on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3319
explicitly provided auxiliary definitions for required type class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3320
dictionaries rather than half-working magic. INCOMPATIBILITY, see the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3321
tutorial on code generation for details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3322
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3323
* Theory Set_Interval: substantial new theorems on indexed sums and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3324
products.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3325
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3326
* Locale bijection establishes convenient default simp rules such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3327
"inv f (f a) = a" for total bijections.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3328
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3329
* Abstract locales semigroup, abel_semigroup, semilattice,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3330
semilattice_neutr, ordering, ordering_top, semilattice_order,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3331
semilattice_neutr_order, comm_monoid_set, semilattice_set,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3332
semilattice_neutr_set, semilattice_order_set,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3333
semilattice_order_neutr_set monoid_list, comm_monoid_list,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3334
comm_monoid_list_set, comm_monoid_mset, comm_monoid_fun use boldified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3335
syntax uniformly that does not clash with corresponding global syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3336
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3337
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3338
* Former locale lifting_syntax is now a bundle, which is easier to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3339
include in a local context or theorem statement, e.g. "context includes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3340
lifting_syntax begin ... end". Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3341
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3342
* Some old / obsolete theorems have been renamed / removed, potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3343
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3344
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3345
  nat_less_cases  --  removed, use linorder_cases instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3346
  inv_image_comp  --  removed, use image_inv_f_f instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3347
  image_surj_f_inv_f  ~>  image_f_inv_f
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3348
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3349
* Some theorems about groups and orders have been generalised from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3350
  groups to semi-groups that are also monoids:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3351
    le_add_same_cancel1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3352
    le_add_same_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3353
    less_add_same_cancel1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3354
    less_add_same_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3355
    add_le_same_cancel1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3356
    add_le_same_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3357
    add_less_same_cancel1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3358
    add_less_same_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3359
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3360
* Some simplifications theorems about rings have been removed, since
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3361
  superseeded by a more general version:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3362
    less_add_cancel_left_greater_zero ~> less_add_same_cancel1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3363
    less_add_cancel_right_greater_zero ~> less_add_same_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3364
    less_eq_add_cancel_left_greater_eq_zero ~> le_add_same_cancel1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3365
    less_eq_add_cancel_right_greater_eq_zero ~> le_add_same_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3366
    less_eq_add_cancel_left_less_eq_zero ~> add_le_same_cancel1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3367
    less_eq_add_cancel_right_less_eq_zero ~> add_le_same_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3368
    less_add_cancel_left_less_zero ~> add_less_same_cancel1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3369
    less_add_cancel_right_less_zero ~> add_less_same_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3370
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3371
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3372
* Renamed split_if -> if_split and split_if_asm -> if_split_asm to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3373
resemble the f.split naming convention, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3374
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3375
* Added class topological_monoid.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3376
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3377
* The following theorems have been renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3378
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3379
  setsum_left_distrib ~> sum_distrib_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3380
  setsum_right_distrib ~> sum_distrib_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3381
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3382
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3383
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3384
* Compound constants INFIMUM and SUPREMUM are mere abbreviations now.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3385
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3386
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3387
* "Gcd (f ` A)" and "Lcm (f ` A)" are printed with optional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3388
comprehension-like syntax analogously to "Inf (f ` A)" and "Sup (f `
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3389
A)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3390
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3391
* Class semiring_Lcd merged into semiring_Gcd. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3392
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3393
* The type class ordered_comm_monoid_add is now called
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3394
ordered_cancel_comm_monoid_add. A new type class ordered_comm_monoid_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3395
is introduced as the combination of ordered_ab_semigroup_add +
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3396
comm_monoid_add. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3397
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3398
* Introduced the type classes canonically_ordered_comm_monoid_add and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3399
dioid.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3400
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3401
* Introduced the type class ordered_ab_semigroup_monoid_add_imp_le. When
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3402
instantiating linordered_semiring_strict and ordered_ab_group_add, an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3403
explicit instantiation of ordered_ab_semigroup_monoid_add_imp_le might
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3404
be required. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3405
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3406
* Dropped various legacy fact bindings, whose replacements are often
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3407
of a more general type also:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3408
  lcm_left_commute_nat ~> lcm.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3409
  lcm_left_commute_int ~> lcm.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3410
  gcd_left_commute_nat ~> gcd.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3411
  gcd_left_commute_int ~> gcd.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3412
  gcd_greatest_iff_nat ~> gcd_greatest_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3413
  gcd_greatest_iff_int ~> gcd_greatest_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3414
  coprime_dvd_mult_nat ~> coprime_dvd_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3415
  coprime_dvd_mult_int ~> coprime_dvd_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3416
  zpower_numeral_even ~> power_numeral_even
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3417
  gcd_mult_cancel_nat ~> gcd_mult_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3418
  gcd_mult_cancel_int ~> gcd_mult_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3419
  div_gcd_coprime_nat ~> div_gcd_coprime
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3420
  div_gcd_coprime_int ~> div_gcd_coprime
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3421
  zpower_numeral_odd ~> power_numeral_odd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3422
  zero_less_int_conv ~> of_nat_0_less_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3423
  gcd_greatest_nat ~> gcd_greatest
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3424
  gcd_greatest_int ~> gcd_greatest
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3425
  coprime_mult_nat ~> coprime_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3426
  coprime_mult_int ~> coprime_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3427
  lcm_commute_nat ~> lcm.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3428
  lcm_commute_int ~> lcm.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3429
  int_less_0_conv ~> of_nat_less_0_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3430
  gcd_commute_nat ~> gcd.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3431
  gcd_commute_int ~> gcd.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3432
  Gcd_insert_nat ~> Gcd_insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3433
  Gcd_insert_int ~> Gcd_insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3434
  of_int_int_eq ~> of_int_of_nat_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3435
  lcm_least_nat ~> lcm_least
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3436
  lcm_least_int ~> lcm_least
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3437
  lcm_assoc_nat ~> lcm.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3438
  lcm_assoc_int ~> lcm.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3439
  int_le_0_conv ~> of_nat_le_0_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3440
  int_eq_0_conv ~> of_nat_eq_0_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3441
  Gcd_empty_nat ~> Gcd_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3442
  Gcd_empty_int ~> Gcd_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3443
  gcd_assoc_nat ~> gcd.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3444
  gcd_assoc_int ~> gcd.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3445
  zero_zle_int ~> of_nat_0_le_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3446
  lcm_dvd2_nat ~> dvd_lcm2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3447
  lcm_dvd2_int ~> dvd_lcm2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3448
  lcm_dvd1_nat ~> dvd_lcm1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3449
  lcm_dvd1_int ~> dvd_lcm1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3450
  gcd_zero_nat ~> gcd_eq_0_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3451
  gcd_zero_int ~> gcd_eq_0_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3452
  gcd_dvd2_nat ~> gcd_dvd2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3453
  gcd_dvd2_int ~> gcd_dvd2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3454
  gcd_dvd1_nat ~> gcd_dvd1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3455
  gcd_dvd1_int ~> gcd_dvd1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3456
  int_numeral ~> of_nat_numeral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3457
  lcm_ac_nat ~> ac_simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3458
  lcm_ac_int ~> ac_simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3459
  gcd_ac_nat ~> ac_simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3460
  gcd_ac_int ~> ac_simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3461
  abs_int_eq ~> abs_of_nat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3462
  zless_int ~> of_nat_less_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3463
  zdiff_int ~> of_nat_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3464
  zadd_int ~> of_nat_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3465
  int_mult ~> of_nat_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3466
  int_Suc ~> of_nat_Suc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3467
  inj_int ~> inj_of_nat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3468
  int_1 ~> of_nat_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3469
  int_0 ~> of_nat_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3470
  Lcm_empty_nat ~> Lcm_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3471
  Lcm_empty_int ~> Lcm_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3472
  Lcm_insert_nat ~> Lcm_insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3473
  Lcm_insert_int ~> Lcm_insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3474
  comp_fun_idem_gcd_nat ~> comp_fun_idem_gcd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3475
  comp_fun_idem_gcd_int ~> comp_fun_idem_gcd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3476
  comp_fun_idem_lcm_nat ~> comp_fun_idem_lcm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3477
  comp_fun_idem_lcm_int ~> comp_fun_idem_lcm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3478
  Lcm_eq_0 ~> Lcm_eq_0_I
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3479
  Lcm0_iff ~> Lcm_0_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3480
  Lcm_dvd_int ~> Lcm_least
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3481
  divides_mult_nat ~> divides_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3482
  divides_mult_int ~> divides_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3483
  lcm_0_nat ~> lcm_0_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3484
  lcm_0_int ~> lcm_0_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3485
  lcm_0_left_nat ~> lcm_0_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3486
  lcm_0_left_int ~> lcm_0_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3487
  dvd_gcd_D1_nat ~> dvd_gcdD1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3488
  dvd_gcd_D1_int ~> dvd_gcdD1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3489
  dvd_gcd_D2_nat ~> dvd_gcdD2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3490
  dvd_gcd_D2_int ~> dvd_gcdD2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3491
  coprime_dvd_mult_iff_nat ~> coprime_dvd_mult_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3492
  coprime_dvd_mult_iff_int ~> coprime_dvd_mult_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3493
  realpow_minus_mult ~> power_minus_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3494
  realpow_Suc_le_self ~> power_Suc_le_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3495
  dvd_Gcd, dvd_Gcd_nat, dvd_Gcd_int removed in favour of Gcd_greatest
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3496
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3497
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3498
* Renamed HOL/Quotient_Examples/FSet.thy to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3499
HOL/Quotient_Examples/Quotient_FSet.thy INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3500
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3501
* Session HOL-Library: theory FinFun bundles "finfun_syntax" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3502
"no_finfun_syntax" allow to control optional syntax in local contexts;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3503
this supersedes former theory FinFun_Syntax. INCOMPATIBILITY, e.g. use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3504
"unbundle finfun_syntax" to imitate import of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3505
"~~/src/HOL/Library/FinFun_Syntax".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3506
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3507
* Session HOL-Library: theory Multiset_Permutations (executably) defines
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3508
the set of permutations of a given set or multiset, i.e. the set of all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3509
lists that contain every element of the carrier (multi-)set exactly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3510
once.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3511
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3512
* Session HOL-Library: multiset membership is now expressed using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3513
set_mset rather than count.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3514
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3515
  - Expressions "count M a > 0" and similar simplify to membership
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3516
    by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3517
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3518
  - Converting between "count M a = 0" and non-membership happens using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3519
    equations count_eq_zero_iff and not_in_iff.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3520
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3521
  - Rules count_inI and in_countE obtain facts of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3522
    "count M a = n" from membership.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3523
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3524
  - Rules count_in_diffI and in_diff_countE obtain facts of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3525
    "count M a = n + count N a" from membership on difference sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3526
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3527
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3528
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3529
* Session HOL-Library: theory LaTeXsugar uses new-style "dummy_pats" for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3530
displaying equations in functional programming style --- variables
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3531
present on the left-hand but not on the righ-hand side are replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3532
underscores.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3533
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3534
* Session HOL-Library: theory Combinator_PER provides combinator to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3535
build partial equivalence relations from a predicate and an equivalence
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3536
relation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3537
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3538
* Session HOL-Library: theory Perm provides basic facts about almost
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3539
everywhere fix bijections.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3540
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3541
* Session HOL-Library: theory Normalized_Fraction allows viewing an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3542
element of a field of fractions as a normalized fraction (i.e. a pair of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3543
numerator and denominator such that the two are coprime and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3544
denominator is normalized wrt. unit factors).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3545
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3546
* Session HOL-NSA has been renamed to HOL-Nonstandard_Analysis.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3547
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3548
* Session HOL-Multivariate_Analysis has been renamed to HOL-Analysis.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3549
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3550
* Session HOL-Analysis: measure theory has been moved here from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3551
HOL-Probability. When importing HOL-Analysis some theorems need
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3552
additional name spaces prefixes due to name clashes. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3553
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3554
* Session HOL-Analysis: more complex analysis including Cauchy's
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3555
inequality, Liouville theorem, open mapping theorem, maximum modulus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3556
principle, Residue theorem, Schwarz Lemma.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3557
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3558
* Session HOL-Analysis: Theory of polyhedra: faces, extreme points,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3559
polytopes, and the Krein–Milman Minkowski theorem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3560
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3561
* Session HOL-Analysis: Numerous results ported from the HOL Light
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3562
libraries: homeomorphisms, continuous function extensions, invariance of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3563
domain.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3564
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3565
* Session HOL-Probability: the type of emeasure and nn_integral was
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3566
changed from ereal to ennreal, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3567
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3568
  emeasure :: 'a measure \<Rightarrow> 'a set \<Rightarrow> ennreal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3569
  nn_integral :: 'a measure \<Rightarrow> ('a \<Rightarrow> ennreal) \<Rightarrow> ennreal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3570
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3571
* Session HOL-Probability: Code generation and QuickCheck for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3572
Probability Mass Functions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3573
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3574
* Session HOL-Probability: theory Random_Permutations contains some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3575
theory about choosing a permutation of a set uniformly at random and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3576
folding over a list in random order.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3577
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3578
* Session HOL-Probability: theory SPMF formalises discrete
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3579
subprobability distributions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3580
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3581
* Session HOL-Library: the names of multiset theorems have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3582
normalised to distinguish which ordering the theorems are about
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3583
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3584
    mset_less_eqI ~> mset_subset_eqI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3585
    mset_less_insertD ~> mset_subset_insertD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3586
    mset_less_eq_count ~> mset_subset_eq_count
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3587
    mset_less_diff_self ~> mset_subset_diff_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3588
    mset_le_exists_conv ~> mset_subset_eq_exists_conv
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3589
    mset_le_mono_add_right_cancel ~> mset_subset_eq_mono_add_right_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3590
    mset_le_mono_add_left_cancel ~> mset_subset_eq_mono_add_left_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3591
    mset_le_mono_add ~> mset_subset_eq_mono_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3592
    mset_le_add_left ~> mset_subset_eq_add_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3593
    mset_le_add_right ~> mset_subset_eq_add_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3594
    mset_le_single ~> mset_subset_eq_single
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3595
    mset_le_multiset_union_diff_commute ~> mset_subset_eq_multiset_union_diff_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3596
    diff_le_self ~> diff_subset_eq_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3597
    mset_leD ~> mset_subset_eqD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3598
    mset_lessD ~> mset_subsetD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3599
    mset_le_insertD ~> mset_subset_eq_insertD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3600
    mset_less_of_empty ~> mset_subset_of_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3601
    mset_less_size ~> mset_subset_size
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3602
    wf_less_mset_rel ~> wf_subset_mset_rel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3603
    count_le_replicate_mset_le ~> count_le_replicate_mset_subset_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3604
    mset_remdups_le ~> mset_remdups_subset_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3605
    ms_lesseq_impl ~> subset_eq_mset_impl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3606
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3607
Some functions have been renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3608
    ms_lesseq_impl -> subset_eq_mset_impl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3609
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3610
* HOL-Library: multisets are now ordered with the multiset ordering
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3611
    #\<subseteq># ~> \<le>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3612
    #\<subset># ~> <
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3613
    le_multiset ~> less_eq_multiset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3614
    less_multiset ~> le_multiset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3615
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3616
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3617
* Session HOL-Library: the prefix multiset_order has been discontinued:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3618
the theorems can be directly accessed. As a consequence, the lemmas
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3619
"order_multiset" and "linorder_multiset" have been discontinued, and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3620
interpretations "multiset_linorder" and "multiset_wellorder" have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3621
replaced by instantiations. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3622
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3623
* Session HOL-Library: some theorems about the multiset ordering have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3624
been renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3625
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3626
    le_multiset_def ~> less_eq_multiset_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3627
    less_multiset_def ~> le_multiset_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3628
    less_eq_imp_le_multiset ~> subset_eq_imp_le_multiset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3629
    mult_less_not_refl ~> mset_le_not_refl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3630
    mult_less_trans ~> mset_le_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3631
    mult_less_not_sym ~> mset_le_not_sym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3632
    mult_less_asym ~> mset_le_asym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3633
    mult_less_irrefl ~> mset_le_irrefl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3634
    union_less_mono2{,1,2} ~> union_le_mono2{,1,2}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3635
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3636
    le_multiset\<^sub>H\<^sub>O ~> less_eq_multiset\<^sub>H\<^sub>O
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3637
    le_multiset_total ~> less_eq_multiset_total
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3638
    less_multiset_right_total ~> subset_eq_imp_le_multiset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3639
    le_multiset_empty_left ~> less_eq_multiset_empty_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3640
    le_multiset_empty_right ~> less_eq_multiset_empty_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3641
    less_multiset_empty_right ~> le_multiset_empty_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3642
    less_multiset_empty_left ~> le_multiset_empty_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3643
    union_less_diff_plus ~> union_le_diff_plus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3644
    ex_gt_count_imp_less_multiset ~> ex_gt_count_imp_le_multiset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3645
    less_multiset_plus_left_nonempty ~> le_multiset_plus_left_nonempty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3646
    le_multiset_plus_right_nonempty ~> le_multiset_plus_right_nonempty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3647
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3648
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3649
* Session HOL-Library: the lemma mset_map has now the attribute [simp].
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3650
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3651
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3652
* Session HOL-Library: some theorems about multisets have been removed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3653
INCOMPATIBILITY, use the following replacements:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3654
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3655
    le_multiset_plus_plus_left_iff ~> add_less_cancel_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3656
    less_multiset_plus_plus_left_iff ~> add_less_cancel_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3657
    le_multiset_plus_plus_right_iff ~> add_less_cancel_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3658
    less_multiset_plus_plus_right_iff ~> add_less_cancel_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3659
    add_eq_self_empty_iff ~> add_cancel_left_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3660
    mset_subset_add_bothsides ~> subset_mset.add_less_cancel_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3661
    mset_less_add_bothsides ~> subset_mset.add_less_cancel_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3662
    mset_le_add_bothsides ~> subset_mset.add_less_cancel_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3663
    empty_inter ~> subset_mset.inf_bot_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3664
    inter_empty ~> subset_mset.inf_bot_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3665
    empty_sup ~> subset_mset.sup_bot_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3666
    sup_empty ~> subset_mset.sup_bot_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3667
    bdd_below_multiset ~> subset_mset.bdd_above_bot
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3668
    subset_eq_empty ~> subset_mset.le_zero_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3669
    le_empty ~> subset_mset.le_zero_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3670
    mset_subset_empty_nonempty ~> subset_mset.zero_less_iff_neq_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3671
    mset_less_empty_nonempty ~> subset_mset.zero_less_iff_neq_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3672
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3673
* Session HOL-Library: some typeclass constraints about multisets have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3674
been reduced from ordered or linordered to preorder. Multisets have the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3675
additional typeclasses order_bot, no_top,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3676
ordered_ab_semigroup_add_imp_le, ordered_cancel_comm_monoid_add,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3677
linordered_cancel_ab_semigroup_add, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3678
ordered_ab_semigroup_monoid_add_imp_le. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3679
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3680
* Session HOL-Library: there are some new simplification rules about
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3681
multisets, the multiset ordering, and the subset ordering on multisets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3682
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3683
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3684
* Session HOL-Library: the subset ordering on multisets has now the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3685
interpretations ordered_ab_semigroup_monoid_add_imp_le and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3686
bounded_lattice_bot. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3687
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3688
* Session HOL-Library, theory Multiset: single has been removed in favor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3689
of add_mset that roughly corresponds to Set.insert. Some theorems have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3690
removed or changed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3691
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3692
  single_not_empty ~> add_mset_not_empty or empty_not_add_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3693
  fold_mset_insert ~> fold_mset_add_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3694
  image_mset_insert ~> image_mset_add_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3695
  union_single_eq_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3696
  multi_self_add_other_not_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3697
  diff_single_eq_union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3698
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3699
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3700
* Session HOL-Library, theory Multiset: some theorems have been changed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3701
to use add_mset instead of single:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3702
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3703
  mset_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3704
  multi_self_add_other_not_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3705
  diff_single_eq_union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3706
  union_single_eq_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3707
  union_single_eq_member
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3708
  add_eq_conv_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3709
  insert_noteq_member
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3710
  add_eq_conv_ex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3711
  multi_member_split
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3712
  multiset_add_sub_el_shuffle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3713
  mset_subset_eq_insertD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3714
  mset_subset_insertD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3715
  insert_subset_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3716
  insert_union_subset_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3717
  multi_psub_of_add_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3718
  inter_add_left1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3719
  inter_add_left2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3720
  inter_add_right1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3721
  inter_add_right2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3722
  sup_union_left1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3723
  sup_union_left2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3724
  sup_union_right1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3725
  sup_union_right2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3726
  size_eq_Suc_imp_eq_union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3727
  multi_nonempty_split
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3728
  mset_insort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3729
  mset_update
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3730
  mult1I
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3731
  less_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3732
  mset_zip_take_Cons_drop_twice
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3733
  rel_mset_Zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3734
  msed_map_invL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3735
  msed_map_invR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3736
  msed_rel_invL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3737
  msed_rel_invR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3738
  le_multiset_right_total
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3739
  multiset_induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3740
  multiset_induct2_size
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3741
  multiset_induct2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3742
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3743
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3744
* Session HOL-Library, theory Multiset: the definitions of some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3745
constants have changed to use add_mset instead of adding a single
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3746
element:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3747
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3748
  image_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3749
  mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3750
  replicate_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3751
  mult1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3752
  pred_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3753
  rel_mset'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3754
  mset_insort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3755
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3756
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3757
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3758
* Session HOL-Library, theory Multiset: due to the above changes, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3759
attributes of some multiset theorems have been changed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3760
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3761
  insert_DiffM  [] ~> [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3762
  insert_DiffM2 [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3763
  diff_add_mset_swap [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3764
  fold_mset_add_mset [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3765
  diff_diff_add [simp] (for multisets only)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3766
  diff_cancel [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3767
  count_single [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3768
  set_mset_single [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3769
  size_multiset_single [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3770
  size_single [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3771
  image_mset_single [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3772
  mset_subset_eq_mono_add_right_cancel [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3773
  mset_subset_eq_mono_add_left_cancel [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3774
  fold_mset_single [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3775
  subset_eq_empty [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3776
  empty_sup [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3777
  sup_empty [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3778
  inter_empty [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3779
  empty_inter [simp] ~> []
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3780
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3781
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3782
* Session HOL-Library, theory Multiset: the order of the variables in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3783
the second cases of multiset_induct, multiset_induct2_size,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3784
multiset_induct2 has been changed (e.g. Add A a ~> Add a A).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3785
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3786
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3787
* Session HOL-Library, theory Multiset: there is now a simplification
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3788
procedure on multisets. It mimics the behavior of the procedure on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3789
natural numbers. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3790
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3791
* Session HOL-Library, theory Multiset: renamed sums and products of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3792
multisets:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3793
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3794
  msetsum ~> sum_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3795
  msetprod ~> prod_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3796
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3797
* Session HOL-Library, theory Multiset: the notation for intersection
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3798
and union of multisets have been changed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3799
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3800
  #\<inter> ~> \<inter>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3801
  #\<union> ~> \<union>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3802
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3803
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3804
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3805
* Session HOL-Library, theory Multiset: the lemma
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3806
one_step_implies_mult_aux on multisets has been removed, use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3807
one_step_implies_mult instead. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3808
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3809
* Session HOL-Library: theory Complete_Partial_Order2 provides reasoning
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3810
support for monotonicity and continuity in chain-complete partial orders
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3811
and about admissibility conditions for fixpoint inductions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3812
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3813
* Session HOL-Library: theory Library/Polynomial contains also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3814
derivation of polynomials (formerly in Library/Poly_Deriv) but not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3815
gcd/lcm on polynomials over fields. This has been moved to a separate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3816
theory Library/Polynomial_GCD_euclidean.thy, to pave way for a possible
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3817
future different type class instantiation for polynomials over factorial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3818
rings. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3819
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3820
* Session HOL-Library: theory Sublist provides function "prefixes" with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3821
the following renaming
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3822
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3823
  prefixeq -> prefix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3824
  prefix -> strict_prefix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3825
  suffixeq -> suffix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3826
  suffix -> strict_suffix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3827
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3828
Added theory of longest common prefixes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3829
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3830
* Session HOL-Number_Theory: algebraic foundation for primes:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3831
Generalisation of predicate "prime" and introduction of predicates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3832
"prime_elem", "irreducible", a "prime_factorization" function, and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3833
"factorial_ring" typeclass with instance proofs for nat, int, poly. Some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3834
theorems now have different names, most notably "prime_def" is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3835
"prime_nat_iff". INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3836
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3837
* Session Old_Number_Theory has been removed, after porting remaining
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3838
theories.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3839
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3840
* Session HOL-Types_To_Sets provides an experimental extension of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3841
Higher-Order Logic to allow translation of types to sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3842
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3843
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3844
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3845
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3846
* Integer.gcd and Integer.lcm use efficient operations from the Poly/ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3847
library (notably for big integers). Subtle change of semantics:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3848
Integer.gcd and Integer.lcm both normalize the sign, results are never
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3849
negative. This coincides with the definitions in HOL/GCD.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3850
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3851
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3852
* Structure Rat for rational numbers is now an integral part of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3853
Isabelle/ML, with special notation @int/nat or @int for numerals (an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3854
abbreviation for antiquotation @{Pure.rat argument}) and ML pretty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3855
printing. Standard operations on type Rat.rat are provided via ad-hoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3856
overloading of + - * / < <= > >= ~ abs. INCOMPATIBILITY, need to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3857
use + instead of +/ etc. Moreover, exception Rat.DIVZERO has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3858
superseded by General.Div.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3859
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3860
* ML antiquotation @{path} is superseded by @{file}, which ensures that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3861
the argument is a plain file. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3862
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3863
* Antiquotation @{make_string} is available during Pure bootstrap --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3864
with approximative output quality.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3865
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3866
* Low-level ML system structures (like PolyML and RunCall) are no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3867
exposed to Isabelle/ML user-space. Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3868
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3869
* The ML function "ML" provides easy access to run-time compilation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3870
This is particularly useful for conditional compilation, without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3871
requiring separate files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3872
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3873
* Option ML_exception_debugger controls detailed exception trace via the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3874
Poly/ML debugger. Relevant ML modules need to be compiled beforehand
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3875
with ML_file_debug, or with ML_file and option ML_debugger enabled. Note
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3876
debugger information requires consirable time and space: main
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3877
Isabelle/HOL with full debugger support may need ML_system_64.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3878
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3879
* Local_Theory.restore has been renamed to Local_Theory.reset to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3880
emphasize its disruptive impact on the cumulative context, notably the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3881
scope of 'private' or 'qualified' names. Note that Local_Theory.reset is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3882
only appropriate when targets are managed, e.g. starting from a global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3883
theory and returning to it. Regular definitional packages should use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3884
balanced blocks of Local_Theory.open_target versus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3885
Local_Theory.close_target instead. Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3886
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3887
* Structure TimeLimit (originally from the SML/NJ library) has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3888
replaced by structure Timeout, with slightly different signature.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3889
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3890
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3891
* Discontinued cd and pwd operations, which are not well-defined in a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3892
multi-threaded environment. Note that files are usually located
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3893
relatively to the master directory of a theory (see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3894
File.full_path). Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3895
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3896
* Binding.empty_atts supersedes Thm.empty_binding and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3897
Attrib.empty_binding. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3899
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3900
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3901
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3902
* SML/NJ and old versions of Poly/ML are no longer supported.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3903
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3904
* Poly/ML heaps now follow the hierarchy of sessions, and thus require
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3905
much less disk space.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3906
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3907
* The Isabelle ML process is now managed directly by Isabelle/Scala, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3908
shell scripts merely provide optional command-line access. In
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3909
particular:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3910
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3911
  . Scala module ML_Process to connect to the raw ML process,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3912
    with interaction via stdin/stdout/stderr or in batch mode;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3913
  . command-line tool "isabelle console" as interactive wrapper;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3914
  . command-line tool "isabelle process" as batch mode wrapper.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3915
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3916
* The executable "isabelle_process" has been discontinued. Tools and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3917
prover front-ends should use ML_Process or Isabelle_Process in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3918
Isabelle/Scala. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3919
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3920
* New command-line tool "isabelle process" supports ML evaluation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3921
literal expressions (option -e) or files (option -f) in the context of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3922
given heap image. Errors lead to premature exit of the ML process with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3923
return code 1.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3924
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3925
* The command-line tool "isabelle build" supports option -N for cyclic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3926
shuffling of NUMA CPU nodes. This may help performance tuning on Linux
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3927
servers with separate CPU/memory modules.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3928
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3929
* System option "threads" (for the size of the Isabelle/ML thread farm)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3930
is also passed to the underlying ML runtime system as --gcthreads,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3931
unless there is already a default provided via ML_OPTIONS settings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3932
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3933
* System option "checkpoint" helps to fine-tune the global heap space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3934
management of isabelle build. This is relevant for big sessions that may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3935
exhaust the small 32-bit address space of the ML process (which is used
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3936
by default).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3937
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3938
* System option "profiling" specifies the mode for global ML profiling
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3939
in "isabelle build". Possible values are "time", "allocations". The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3940
command-line tool "isabelle profiling_report" helps to digest the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3941
resulting log files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3942
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3943
* System option "ML_process_policy" specifies an optional command prefix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3944
for the underlying ML process, e.g. to control CPU affinity on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3945
multiprocessor systems. The "isabelle jedit" tool allows to override the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3946
implicit default via option -p.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3947
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3948
* Command-line tool "isabelle console" provides option -r to help to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3949
bootstrapping Isabelle/Pure interactively.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3950
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3951
* Command-line tool "isabelle yxml" has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3952
INCOMPATIBILITY, use operations from the modules "XML" and "YXML" in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3953
Isabelle/ML or Isabelle/Scala.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3954
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3955
* Many Isabelle tools that require a Java runtime system refer to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3956
settings ISABELLE_TOOL_JAVA_OPTIONS32 / ISABELLE_TOOL_JAVA_OPTIONS64,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3957
depending on the underlying platform. The settings for "isabelle build"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3958
ISABELLE_BUILD_JAVA_OPTIONS32 / ISABELLE_BUILD_JAVA_OPTIONS64 have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3959
discontinued. Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3960
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3961
* The Isabelle system environment always ensures that the main
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3962
executables are found within the shell search $PATH: "isabelle" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3963
"isabelle_scala_script".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3964
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3965
* Isabelle tools may consist of .scala files: the Scala compiler is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3966
invoked on the spot. The source needs to define some object that extends
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3967
Isabelle_Tool.Body.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3968
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3969
* File.bash_string, File.bash_path etc. represent Isabelle/ML and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3970
Isabelle/Scala strings authentically within GNU bash. This is useful to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3971
produce robust shell scripts under program control, without worrying
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3972
about spaces or special characters. Note that user output works via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3973
Path.print (ML) or Path.toString (Scala). INCOMPATIBILITY, the old (and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3974
less versatile) operations File.shell_quote, File.shell_path etc. have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3975
been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3976
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3977
* The isabelle_java executable allows to run a Java process within the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3978
name space of Java and Scala components that are bundled with Isabelle,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3979
but without the Isabelle settings environment.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3980
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3981
* Isabelle/Scala: the SSH module supports ssh and sftp connections, for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3982
remote command-execution and file-system access. This resembles
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3983
operations from module File and Isabelle_System to some extent. Note
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3984
that Path specifications need to be resolved remotely via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3985
ssh.remote_path instead of File.standard_path: the implicit process
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3986
environment is different, Isabelle settings are not available remotely.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3987
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3988
* Isabelle/Scala: the Mercurial module supports repositories via the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3989
regular hg command-line interface. The repositroy clone and working
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3990
directory may reside on a local or remote file-system (via ssh
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3991
connection).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3992
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3993
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3994
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3995
New in Isabelle2016 (February 2016)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3996
-----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3997
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3998
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  3999
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4000
* Eisbach is now based on Pure instead of HOL. Objects-logics may import
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4001
either the theory ~~/src/HOL/Eisbach/Eisbach (for HOL etc.) or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4002
~~/src/HOL/Eisbach/Eisbach_Old_Appl_Syntax (for FOL, ZF etc.). Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4003
the HOL-Eisbach session located in ~~/src/HOL/Eisbach/ contains further
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4004
examples that do require HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4005
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4006
* Better resource usage on all platforms (Linux, Windows, Mac OS X) for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4007
both Isabelle/ML and Isabelle/Scala.  Slightly reduced heap space usage.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4008
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4009
* Former "xsymbols" syntax with Isabelle symbols is used by default,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4010
without any special print mode. Important ASCII replacement syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4011
remains available under print mode "ASCII", but less important syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4012
has been removed (see below).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4013
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4014
* Support for more arrow symbols, with rendering in LaTeX and Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4015
fonts: \<Lleftarrow> \<Rrightarrow> \<longlongleftarrow> \<longlongrightarrow> \<longlonglongleftarrow> \<longlonglongrightarrow>.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4016
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4017
* Special notation \<struct> for the first implicit 'structure' in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4018
context has been discontinued. Rare INCOMPATIBILITY, use explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4019
structure name instead, notably in indexed notation with block-subscript
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4020
(e.g. \<odot>\<^bsub>A\<^esub>).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4021
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4022
* The glyph for \<diamond> in the IsabelleText font now corresponds better to its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4023
counterpart \<box> as quantifier-like symbol. A small diamond is available as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4024
\<diamondop>; the old symbol \<struct> loses this rendering and any special
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4025
meaning.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4026
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4027
* Syntax for formal comments "-- text" now also supports the symbolic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4028
form "\<comment> text". Command-line tool "isabelle update_cartouches -c" helps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4029
to update old sources.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4030
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4031
* Toplevel theorem statements have been simplified as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4032
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4033
  theorems             ~>  lemmas
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4034
  schematic_lemma      ~>  schematic_goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4035
  schematic_theorem    ~>  schematic_goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4036
  schematic_corollary  ~>  schematic_goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4037
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4038
Command-line tool "isabelle update_theorems" updates theory sources
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4039
accordingly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4040
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4041
* Toplevel theorem statement 'proposition' is another alias for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4042
'theorem'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4043
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4044
* The old 'defs' command has been removed (legacy since Isabelle2014).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4045
INCOMPATIBILITY, use regular 'definition' instead. Overloaded and/or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4046
deferred definitions require a surrounding 'overloading' block.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4047
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4049
*** Prover IDE -- Isabelle/Scala/jEdit ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4050
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4051
* IDE support for the source-level debugger of Poly/ML, to work with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4052
Isabelle/ML and official Standard ML. Option "ML_debugger" and commands
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4053
'ML_file_debug', 'ML_file_no_debug', 'SML_file_debug',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4054
'SML_file_no_debug' control compilation of sources with or without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4055
debugging information. The Debugger panel allows to set breakpoints (via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4056
context menu), step through stopped threads, evaluate local ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4057
expressions etc. At least one Debugger view needs to be active to have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4058
any effect on the running ML program.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4059
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4060
* The State panel manages explicit proof state output, with dynamic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4061
auto-update according to cursor movement. Alternatively, the jEdit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4062
action "isabelle.update-state" (shortcut S+ENTER) triggers manual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4063
update.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4064
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4065
* The Output panel no longer shows proof state output by default, to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4066
avoid GUI overcrowding. INCOMPATIBILITY, use the State panel instead or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4067
enable option "editor_output_state".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4068
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4069
* The text overview column (status of errors, warnings etc.) is updated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4070
asynchronously, leading to much better editor reactivity. Moreover, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4071
full document node content is taken into account. The width of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4072
column is scaled according to the main text area font, for improved
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4073
visibility.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4074
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4075
* The main text area no longer changes its color hue in outdated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4076
situations. The text overview column takes over the role to indicate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4077
unfinished edits in the PIDE pipeline. This avoids flashing text display
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4078
due to ad-hoc updates by auxiliary GUI components, such as the State
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4079
panel.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4080
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4081
* Slightly improved scheduling for urgent print tasks (e.g. command
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4082
state output, interactive queries) wrt. long-running background tasks.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4083
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4084
* Completion of symbols via prefix of \<name> or \<^name> or \name is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4085
always possible, independently of the language context. It is never
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4086
implicit: a popup will show up unconditionally.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4088
* Additional abbreviations for syntactic completion may be specified in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4089
$ISABELLE_HOME/etc/abbrevs and $ISABELLE_HOME_USER/etc/abbrevs, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4090
support for simple templates using ASCII 007 (bell) as placeholder.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4091
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4092
* Symbols \<oplus>, \<Oplus>, \<otimes>, \<Otimes>, \<odot>, \<Odot>, \<ominus>, \<oslash> no longer provide abbreviations for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4093
completion like "+o", "*o", ".o" etc. -- due to conflicts with other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4094
ASCII syntax. INCOMPATIBILITY, use plain backslash-completion or define
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4095
suitable abbreviations in $ISABELLE_HOME_USER/etc/abbrevs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4096
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4097
* Action "isabelle-emph" (with keyboard shortcut C+e LEFT) controls
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4098
emphasized text style; the effect is visible in document output, not in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4099
the editor.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4100
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4101
* Action "isabelle-reset" now uses keyboard shortcut C+e BACK_SPACE,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4102
instead of former C+e LEFT.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4103
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4104
* The command-line tool "isabelle jedit" and the isabelle.Main
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4105
application wrapper treat the default $USER_HOME/Scratch.thy more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4106
uniformly, and allow the dummy file argument ":" to open an empty buffer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4107
instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4108
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4109
* New command-line tool "isabelle jedit_client" allows to connect to an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4110
already running Isabelle/jEdit process. This achieves the effect of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4111
single-instance applications seen on common GUI desktops.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4112
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4113
* The default look-and-feel for Linux is the traditional "Metal", which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4114
works better with GUI scaling for very high-resolution displays (e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4115
4K). Moreover, it is generally more robust than "Nimbus".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4116
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4117
* Update to jedit-5.3.0, with improved GUI scaling and support of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4118
high-resolution displays (e.g. 4K).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4119
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4120
* The main Isabelle executable is managed as single-instance Desktop
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4121
application uniformly on all platforms: Linux, Windows, Mac OS X.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4122
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4123
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4124
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4125
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4126
* Commands 'paragraph' and 'subparagraph' provide additional section
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4127
headings. Thus there are 6 levels of standard headings, as in HTML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4128
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4129
* Command 'text_raw' has been clarified: input text is processed as in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4130
'text' (with antiquotations and control symbols). The key difference is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4131
the lack of the surrounding isabelle markup environment in output.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4132
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4133
* Text is structured in paragraphs and nested lists, using notation that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4134
is similar to Markdown. The control symbols for list items are as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4135
follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4136
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4137
  \<^item>  itemize
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4138
  \<^enum>  enumerate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4139
  \<^descr>  description
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4140
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4141
* There is a new short form for antiquotations with a single argument
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4142
that is a cartouche: \<^name>\<open>...\<close> is equivalent to @{name \<open>...\<close>} and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4143
\<open>...\<close> without control symbol is equivalent to @{cartouche \<open>...\<close>}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4144
\<^name> without following cartouche is equivalent to @{name}. The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4145
standard Isabelle fonts provide glyphs to render important control
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4146
symbols, e.g. "\<^verbatim>", "\<^emph>", "\<^bold>".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4147
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4148
* Antiquotations @{noindent}, @{smallskip}, @{medskip}, @{bigskip} with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4149
corresponding control symbols \<^noindent>, \<^smallskip>, \<^medskip>, \<^bigskip> specify spacing formally, using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4150
standard LaTeX macros of the same names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4151
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4152
* Antiquotation @{cartouche} in Isabelle/Pure is the same as @{text}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4153
Consequently, \<open>...\<close> without any decoration prints literal quasi-formal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4154
text. Command-line tool "isabelle update_cartouches -t" helps to update
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4155
old sources, by approximative patching of the content of string and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4156
cartouche tokens seen in theory sources.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4157
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4158
* The @{text} antiquotation now ignores the antiquotation option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4159
"source". The given text content is output unconditionally, without any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4160
surrounding quotes etc. Subtle INCOMPATIBILITY, put quotes into the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4161
argument where they are really intended, e.g. @{text \<open>"foo"\<close>}. Initial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4162
or terminal spaces are ignored.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4163
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4164
* Antiquotations @{emph} and @{bold} output LaTeX source recursively,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4165
adding appropriate text style markup. These may be used in the short
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4166
form \<^emph>\<open>...\<close> and \<^bold>\<open>...\<close>.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4167
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4168
* Document antiquotation @{footnote} outputs LaTeX source recursively,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4169
marked as \footnote{}. This may be used in the short form \<^footnote>\<open>...\<close>.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4170
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4171
* Antiquotation @{verbatim [display]} supports option "indent".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4172
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4173
* Antiquotation @{theory_text} prints uninterpreted theory source text
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4174
(Isar outer syntax with command keywords etc.). This may be used in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4175
short form \<^theory_text>\<open>...\<close>. @{theory_text [display]} supports option "indent".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4176
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4177
* Antiquotation @{doc ENTRY} provides a reference to the given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4178
documentation, with a hyperlink in the Prover IDE.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4179
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4180
* Antiquotations @{command}, @{method}, @{attribute} print checked
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4181
entities of the Isar language.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4182
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4183
* HTML presentation uses the standard IsabelleText font and Unicode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4184
rendering of Isabelle symbols like Isabelle/Scala/jEdit.  The former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4185
print mode "HTML" loses its special meaning.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4186
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4187
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4188
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4189
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4190
* Local goals ('have', 'show', 'hence', 'thus') allow structured rule
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4191
statements like fixes/assumes/shows in theorem specifications, but the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4192
notation is postfix with keywords 'if' (or 'when') and 'for'. For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4193
example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4194
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4195
  have result: "C x y"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4196
    if "A x" and "B y"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4197
    for x :: 'a and y :: 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4198
    <proof>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4199
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4200
The local assumptions are bound to the name "that". The result is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4201
exported from context of the statement as usual. The above roughly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4202
corresponds to a raw proof block like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4203
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4204
  {
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4205
    fix x :: 'a and y :: 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4206
    assume that: "A x" "B y"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4207
    have "C x y" <proof>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4208
  }
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4209
  note result = this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4210
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4211
The keyword 'when' may be used instead of 'if', to indicate 'presume'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4212
instead of 'assume' above.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4213
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4214
* Assumptions ('assume', 'presume') allow structured rule statements
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4215
using 'if' and 'for', similar to 'have' etc. above. For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4216
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4217
  assume result: "C x y"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4218
    if "A x" and "B y"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4219
    for x :: 'a and y :: 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4220
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4221
This assumes "\<And>x y::'a. A x \<Longrightarrow> B y \<Longrightarrow> C x y" and produces a general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4222
result as usual: "A ?x \<Longrightarrow> B ?y \<Longrightarrow> C ?x ?y".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4223
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4224
Vacuous quantification in assumptions is omitted, i.e. a for-context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4225
only effects propositions according to actual use of variables. For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4226
example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4227
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4228
  assume "A x" and "B y" for x and y
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4229
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4230
is equivalent to:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4231
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4232
  assume "\<And>x. A x" and "\<And>y. B y"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4233
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4234
* The meaning of 'show' with Pure rule statements has changed: premises
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4235
are treated in the sense of 'assume', instead of 'presume'. This means,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4236
a goal like "\<And>x. A x \<Longrightarrow> B x \<Longrightarrow> C x" can be solved completely as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4237
follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4238
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4239
  show "\<And>x. A x \<Longrightarrow> B x \<Longrightarrow> C x"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4240
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4241
or:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4242
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4243
  show "C x" if "A x" "B x" for x
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4244
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4245
Rare INCOMPATIBILITY, the old behaviour may be recovered as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4246
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4247
  show "C x" when "A x" "B x" for x
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4248
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4249
* New command 'consider' states rules for generalized elimination and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4250
case splitting. This is like a toplevel statement "theorem obtains" used
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4251
within a proof body; or like a multi-branch 'obtain' without activation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4252
of the local context elements yet.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4253
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4254
* Proof method "cases" allows to specify the rule as first entry of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4255
chained facts.  This is particularly useful with 'consider':
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4256
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4257
  consider (a) A | (b) B | (c) C <proof>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4258
  then have something
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4259
  proof cases
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4260
    case a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4261
    then show ?thesis <proof>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4262
  next
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4263
    case b
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4264
    then show ?thesis <proof>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4265
  next
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4266
    case c
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4267
    then show ?thesis <proof>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4268
  qed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4269
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4270
* Command 'case' allows fact name and attribute specification like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4271
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4272
  case a: (c xs)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4273
  case a [attributes]: (c xs)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4274
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4275
Facts that are introduced by invoking the case context are uniformly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4276
qualified by "a"; the same name is used for the cumulative fact. The old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4277
form "case (c xs) [attributes]" is no longer supported. Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4278
INCOMPATIBILITY, need to adapt uses of case facts in exotic situations,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4279
and always put attributes in front.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4280
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4281
* The standard proof method of commands 'proof' and '..' is now called
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4282
"standard" to make semantically clear what it is; the old name "default"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4283
is still available as legacy for some time. Documentation now explains
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4284
'..' more accurately as "by standard" instead of "by rule".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4285
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4286
* Nesting of Isar goal structure has been clarified: the context after
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4287
the initial backwards refinement is retained for the whole proof, within
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4288
all its context sections (as indicated via 'next'). This is e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4289
relevant for 'using', 'including', 'supply':
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4290
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4291
  have "A \<and> A" if a: A for A
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4292
    supply [simp] = a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4293
  proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4294
    show A by simp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4295
  next
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4296
    show A by simp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4297
  qed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4298
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4299
* Command 'obtain' binds term abbreviations (via 'is' patterns) in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4300
proof body as well, abstracted over relevant parameters.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4301
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4302
* Improved type-inference for theorem statement 'obtains': separate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4303
parameter scope for of each clause.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4304
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4305
* Term abbreviations via 'is' patterns also work for schematic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4306
statements: result is abstracted over unknowns.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4308
* Command 'subgoal' allows to impose some structure on backward
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4309
refinements, to avoid proof scripts degenerating into long of 'apply'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4310
sequences. Further explanations and examples are given in the isar-ref
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4311
manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4312
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4313
* Command 'supply' supports fact definitions during goal refinement
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4314
('apply' scripts).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4315
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4316
* Proof method "goal_cases" turns the current subgoals into cases within
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4317
the context; the conclusion is bound to variable ?case in each case. For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4318
example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4319
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4320
lemma "\<And>x. A x \<Longrightarrow> B x \<Longrightarrow> C x"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4321
  and "\<And>y z. U y \<Longrightarrow> V z \<Longrightarrow> W y z"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4322
proof goal_cases
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4323
  case (1 x)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4324
  then show ?case using \<open>A x\<close> \<open>B x\<close> sorry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4325
next
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4326
  case (2 y z)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4327
  then show ?case using \<open>U y\<close> \<open>V z\<close> sorry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4328
qed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4329
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4330
lemma "\<And>x. A x \<Longrightarrow> B x \<Longrightarrow> C x"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4331
  and "\<And>y z. U y \<Longrightarrow> V z \<Longrightarrow> W y z"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4332
proof goal_cases
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4333
  case prems: 1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4334
  then show ?case using prems sorry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4335
next
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4336
  case prems: 2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4337
  then show ?case using prems sorry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4338
qed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4339
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4340
* The undocumented feature of implicit cases goal1, goal2, goal3, etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4341
is marked as legacy, and will be removed eventually. The proof method
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4342
"goals" achieves a similar effect within regular Isar; often it can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4343
done more adequately by other means (e.g. 'consider').
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4344
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4345
* The vacuous fact "TERM x" may be established "by fact" or as `TERM x`
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4346
as well, not just "by this" or "." as before.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4347
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4348
* Method "sleep" succeeds after a real-time delay (in seconds). This is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4349
occasionally useful for demonstration and testing purposes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4350
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4351
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4352
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4353
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4354
* Qualifiers in locale expressions default to mandatory ('!') regardless
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4355
of the command. Previously, for 'locale' and 'sublocale' the default was
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4356
optional ('?'). The old synatx '!' has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4357
INCOMPATIBILITY, remove '!' and add '?' as required.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4358
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4359
* Keyword 'rewrites' identifies rewrite morphisms in interpretation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4360
commands. Previously, the keyword was 'where'. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4361
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4362
* More gentle suppression of syntax along locale morphisms while
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4363
printing terms. Previously 'abbreviation' and 'notation' declarations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4364
would be suppressed for morphisms except term identity. Now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4365
'abbreviation' is also kept for morphims that only change the involved
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4366
parameters, and only 'notation' is suppressed. This can be of great help
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4367
when working with complex locale hierarchies, because proof states are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4368
displayed much more succinctly. It also means that only notation needs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4369
to be redeclared if desired, as illustrated by this example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4370
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4371
  locale struct = fixes composition :: "'a => 'a => 'a" (infixl "\<cdot>" 65)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4372
  begin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4373
    definition derived (infixl "\<odot>" 65) where ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4374
  end
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4375
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4376
  locale morphism =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4377
    left: struct composition + right: struct composition'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4378
    for composition (infix "\<cdot>" 65) and composition' (infix "\<cdot>''" 65)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4379
  begin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4380
    notation right.derived ("\<odot>''")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4381
  end
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4382
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4383
* Command 'global_interpretation' issues interpretations into global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4384
theories, with optional rewrite definitions following keyword 'defines'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4385
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4386
* Command 'sublocale' accepts optional rewrite definitions after keyword
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4387
'defines'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4388
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4389
* Command 'permanent_interpretation' has been discontinued. Use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4390
'global_interpretation' or 'sublocale' instead. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4391
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4392
* Command 'print_definitions' prints dependencies of definitional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4393
specifications. This functionality used to be part of 'print_theory'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4394
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4395
* Configuration option rule_insts_schematic has been discontinued
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4396
(intermediate legacy feature in Isabelle2015). INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4397
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4398
* Abbreviations in type classes now carry proper sort constraint. Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4399
INCOMPATIBILITY in situations where the previous misbehaviour has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4400
exploited.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4401
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4402
* Refinement of user-space type system in type classes: pseudo-local
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4403
operations behave more similar to abbreviations. Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4404
INCOMPATIBILITY in exotic situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4405
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4406
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4407
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4408
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4409
* The 'typedef' command has been upgraded from a partially checked
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4410
"axiomatization", to a full definitional specification that takes the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4411
global collection of overloaded constant / type definitions into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4412
account. Type definitions with open dependencies on overloaded
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4413
definitions need to be specified as "typedef (overloaded)". This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4414
provides extra robustness in theory construction. Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4415
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4416
* Qualification of various formal entities in the libraries is done more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4417
uniformly via "context begin qualified definition ... end" instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4418
old-style "hide_const (open) ...". Consequently, both the defined
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4419
constant and its defining fact become qualified, e.g. Option.is_none and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4420
Option.is_none_def. Occasional INCOMPATIBILITY in applications.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4421
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4422
* Some old and rarely used ASCII replacement syntax has been removed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4423
INCOMPATIBILITY, standard syntax with symbols should be used instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4424
The subsequent commands help to reproduce the old forms, e.g. to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4425
simplify porting old theories:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4426
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4427
  notation iff  (infixr "<->" 25)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4428
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4429
  notation Times  (infixr "<*>" 80)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4430
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4431
  type_notation Map.map  (infixr "~=>" 0)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4432
  notation Map.map_comp  (infixl "o'_m" 55)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4433
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4434
  type_notation FinFun.finfun ("(_ =>f /_)" [22, 21] 21)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4435
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4436
  notation FuncSet.funcset  (infixr "->" 60)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4437
  notation FuncSet.extensional_funcset  (infixr "->\<^sub>E" 60)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4438
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4439
  notation Omega_Words_Fun.conc (infixr "conc" 65)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4440
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4441
  notation Preorder.equiv ("op ~~")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4442
    and Preorder.equiv ("(_/ ~~ _)" [51, 51] 50)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4444
  notation (in topological_space) tendsto (infixr "--->" 55)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4445
  notation (in topological_space) LIMSEQ ("((_)/ ----> (_))" [60, 60] 60)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4446
  notation LIM ("((_)/ -- (_)/ --> (_))" [60, 0, 60] 60)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4447
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4448
  notation NSA.approx (infixl "@=" 50)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4449
  notation NSLIMSEQ ("((_)/ ----NS> (_))" [60, 60] 60)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4450
  notation NSLIM ("((_)/ -- (_)/ --NS> (_))" [60, 0, 60] 60)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4451
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4452
* The alternative notation "\<Colon>" for type and sort constraints has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4453
removed: in LaTeX document output it looks the same as "::".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4454
INCOMPATIBILITY, use plain "::" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4455
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4456
* Commands 'inductive' and 'inductive_set' work better when names for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4457
intro rules are omitted: the "cases" and "induct" rules no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4458
declare empty case_names, but no case_names at all. This allows to use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4459
numbered cases in proofs, without requiring method "goal_cases".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4460
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4461
* Inductive definitions ('inductive', 'coinductive', etc.) expose
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4462
low-level facts of the internal construction only if the option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4463
"inductive_internals" is enabled. This refers to the internal predicate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4464
definition and its monotonicity result. Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4465
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4466
* Recursive function definitions ('fun', 'function', 'partial_function')
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4467
expose low-level facts of the internal construction only if the option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4468
"function_internals" is enabled. Its internal inductive definition is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4469
also subject to "inductive_internals". Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4470
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4471
* BNF datatypes ('datatype', 'codatatype', etc.) expose low-level facts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4472
of the internal construction only if the option "bnf_internals" is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4473
enabled. This supersedes the former option "bnf_note_all". Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4474
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4475
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4476
* Combinator to represent case distinction on products is named
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4477
"case_prod", uniformly, discontinuing any input aliasses. Very popular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4478
theorem aliasses have been retained.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4479
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4480
Consolidated facts:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4481
  PairE ~> prod.exhaust
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4482
  Pair_eq ~> prod.inject
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4483
  pair_collapse ~> prod.collapse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4484
  Pair_fst_snd_eq ~> prod_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4485
  split_twice ~> prod.case_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4486
  split_weak_cong ~> prod.case_cong_weak
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4487
  split_split ~> prod.split
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4488
  split_split_asm ~> prod.split_asm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4489
  splitI ~> case_prodI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4490
  splitD ~> case_prodD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4491
  splitI2 ~> case_prodI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4492
  splitI2' ~> case_prodI2'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4493
  splitE ~> case_prodE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4494
  splitE' ~> case_prodE'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4495
  split_pair ~> case_prod_Pair
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4496
  split_eta ~> case_prod_eta
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4497
  split_comp ~> case_prod_comp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4498
  mem_splitI ~> mem_case_prodI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4499
  mem_splitI2 ~> mem_case_prodI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4500
  mem_splitE ~> mem_case_prodE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4501
  The_split ~> The_case_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4502
  cond_split_eta ~> cond_case_prod_eta
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4503
  Collect_split_in_rel_leE ~> Collect_case_prod_in_rel_leE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4504
  Collect_split_in_rel_leI ~> Collect_case_prod_in_rel_leI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4505
  in_rel_Collect_split_eq ~> in_rel_Collect_case_prod_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4506
  Collect_split_Grp_eqD ~> Collect_case_prod_Grp_eqD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4507
  Collect_split_Grp_inD ~> Collect_case_prod_Grp_in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4508
  Domain_Collect_split ~> Domain_Collect_case_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4509
  Image_Collect_split ~> Image_Collect_case_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4510
  Range_Collect_split ~> Range_Collect_case_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4511
  Eps_split ~> Eps_case_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4512
  Eps_split_eq ~> Eps_case_prod_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4513
  split_rsp ~> case_prod_rsp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4514
  curry_split ~> curry_case_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4515
  split_curry ~> case_prod_curry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4516
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4517
Changes in structure HOLogic:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4518
  split_const ~> case_prod_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4519
  mk_split ~> mk_case_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4520
  mk_psplits ~> mk_ptupleabs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4521
  strip_psplits ~> strip_ptupleabs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4522
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4523
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4524
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4525
* The coercions to type 'real' have been reorganised. The function
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4526
'real' is no longer overloaded, but has type 'nat => real' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4527
abbreviates of_nat for that type. Also 'real_of_int :: int => real'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4528
abbreviates of_int for that type. Other overloaded instances of 'real'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4529
have been replaced by 'real_of_ereal' and 'real_of_float'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4531
Consolidated facts (among others):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4532
  real_of_nat_le_iff -> of_nat_le_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4533
  real_of_nat_numeral of_nat_numeral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4534
  real_of_int_zero of_int_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4535
  real_of_nat_zero of_nat_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4536
  real_of_one of_int_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4537
  real_of_int_add of_int_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4538
  real_of_nat_add of_nat_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4539
  real_of_int_diff of_int_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4540
  real_of_nat_diff of_nat_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4541
  floor_subtract floor_diff_of_int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4542
  real_of_int_inject of_int_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4543
  real_of_int_gt_zero_cancel_iff of_int_0_less_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4544
  real_of_int_ge_zero_cancel_iff of_int_0_le_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4545
  real_of_nat_ge_zero of_nat_0_le_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4546
  real_of_int_ceiling_ge le_of_int_ceiling
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4547
  ceiling_less_eq ceiling_less_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4548
  ceiling_le_eq ceiling_le_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4549
  less_floor_eq less_floor_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4550
  floor_less_eq floor_less_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4551
  floor_divide_eq_div floor_divide_of_int_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4552
  real_of_int_zero_cancel of_nat_eq_0_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4553
  ceiling_real_of_int ceiling_of_int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4554
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4555
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4556
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4557
* Theory Map: lemma map_of_is_SomeD was a clone of map_of_SomeD and has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4558
been removed. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4559
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4560
* Quickcheck setup for finite sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4561
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4562
* Discontinued simp_legacy_precond. Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4563
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4564
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4565
  - The MaSh relevance filter has been sped up.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4566
  - Proof reconstruction has been improved, to minimize the incidence of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4567
    cases where Sledgehammer gives a proof that does not work.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4568
  - Auto Sledgehammer now minimizes and preplays the results.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4569
  - Handle Vampire 4.0 proof output without raising exception.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4570
  - Eliminated "MASH" environment variable. Use the "MaSh" option in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4571
    Isabelle/jEdit instead. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4572
  - Eliminated obsolete "blocking" option and related subcommands.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4573
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4574
* Nitpick:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4575
  - Fixed soundness bug in translation of "finite" predicate.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4576
  - Fixed soundness bug in "destroy_constrs" optimization.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4577
  - Fixed soundness bug in translation of "rat" type.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4578
  - Removed "check_potential" and "check_genuine" options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4579
  - Eliminated obsolete "blocking" option.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4580
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4581
* (Co)datatype package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4582
  - New commands "lift_bnf" and "copy_bnf" for lifting (copying) a BNF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4583
    structure on the raw type to an abstract type defined using typedef.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4584
  - Always generate "case_transfer" theorem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4585
  - For mutual types, generate slightly stronger "rel_induct",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4586
    "rel_coinduct", and "coinduct" theorems. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4587
  - Allow discriminators and selectors with the same name as the type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4588
    being defined.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4589
  - Avoid various internal name clashes (e.g., 'datatype f = f').
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4590
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4591
* Transfer: new methods for interactive debugging of 'transfer' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4592
'transfer_prover': 'transfer_start', 'transfer_step', 'transfer_end',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4593
'transfer_prover_start' and 'transfer_prover_end'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4594
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4595
* New diagnostic command print_record for displaying record definitions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4596
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4597
* Division on integers is bootstrapped directly from division on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4598
naturals and uses generic numeral algorithm for computations. Slight
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4599
INCOMPATIBILITY, simproc numeral_divmod replaces and generalizes former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4600
simprocs binary_int_div and binary_int_mod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4601
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4602
* Tightened specification of class semiring_no_zero_divisors. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4603
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4604
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4605
* Class algebraic_semidom introduces common algebraic notions of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4606
integral (semi)domains, particularly units. Although logically subsumed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4607
by fields, is is not a super class of these in order not to burden
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4608
fields with notions that are trivial there.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4609
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4610
* Class normalization_semidom specifies canonical representants for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4611
equivalence classes of associated elements in an integral (semi)domain.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4612
This formalizes associated elements as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4613
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4614
* Abstract specification of gcd/lcm operations in classes semiring_gcd,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4615
semiring_Gcd, semiring_Lcd. Minor INCOMPATIBILITY: facts gcd_nat.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4616
and gcd_int.commute are subsumed by gcd.commute, as well as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4617
gcd_nat.assoc and gcd_int.assoc by gcd.assoc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4618
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4619
* Former constants Fields.divide (_ / _) and Divides.div (_ div _) are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4620
logically unified to Rings.divide in syntactic type class Rings.divide,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4621
with infix syntax (_ div _). Infix syntax (_ / _) for field division is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4622
added later as abbreviation in class Fields.inverse. INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4623
instantiations must refer to Rings.divide rather than the former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4624
separate constants, hence infix syntax (_ / _) is usually not available
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4625
during instantiation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4626
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4627
* New cancellation simprocs for boolean algebras to cancel complementary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4628
terms for sup and inf. For example, "sup x (sup y (- x))" simplifies to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4629
"top". INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4630
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4631
* Class uniform_space introduces uniform spaces btw topological spaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4632
and metric spaces. Minor INCOMPATIBILITY: open_<type>_def needs to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4633
introduced in the form of an uniformity. Some constants are more general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4634
now, it may be necessary to add type class constraints.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4635
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4636
  open_real_def \<leadsto> open_dist
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4637
  open_complex_def \<leadsto> open_dist
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4638
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4639
* Library/Monad_Syntax: notation uses symbols \<bind> and \<then>. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4640
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4641
* Library/Multiset:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4642
  - Renamed multiset inclusion operators:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4643
      < ~> <#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4644
      > ~> >#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4645
      <= ~> <=#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4646
      >= ~> >=#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4647
      \<le> ~> \<le>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4648
      \<ge> ~> \<ge>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4649
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4650
  - Added multiset inclusion operator syntax:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4651
      \<subset>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4652
      \<subseteq>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4653
      \<supset>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4654
      \<supseteq>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4655
  - "'a multiset" is no longer an instance of the "order",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4656
    "ordered_ab_semigroup_add_imp_le", "ordered_cancel_comm_monoid_diff",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4657
    "semilattice_inf", and "semilattice_sup" type classes. The theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4658
    previously provided by these type classes (directly or indirectly)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4659
    are now available through the "subset_mset" interpretation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4660
    (e.g. add_mono ~> subset_mset.add_mono).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4661
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4662
  - Renamed conversions:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4663
      multiset_of ~> mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4664
      multiset_of_set ~> mset_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4665
      set_of ~> set_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4666
    INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4667
  - Renamed lemmas:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4668
      mset_le_def ~> subseteq_mset_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4669
      mset_less_def ~> subset_mset_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4670
      less_eq_multiset.rep_eq ~> subseteq_mset_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4671
    INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4672
  - Removed lemmas generated by lift_definition:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4673
    less_eq_multiset.abs_eq, less_eq_multiset.rsp,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4674
    less_eq_multiset.transfer, less_eq_multiset_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4675
    INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4676
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4677
* Library/Omega_Words_Fun: Infinite words modeled as functions nat \<Rightarrow> 'a.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4678
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4679
* Library/Bourbaki_Witt_Fixpoint: Added formalisation of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4680
Bourbaki-Witt fixpoint theorem for increasing functions in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4681
chain-complete partial orders.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4682
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4683
* Library/Old_Recdef: discontinued obsolete 'defer_recdef' command.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4684
Minor INCOMPATIBILITY, use 'function' instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4685
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4686
* Library/Periodic_Fun: a locale that provides convenient lemmas for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4687
periodic functions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4688
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4689
* Library/Formal_Power_Series: proper definition of division (with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4690
remainder) for formal power series; instances for Euclidean Ring and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4691
GCD.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4692
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4693
* HOL-Imperative_HOL: obsolete theory Legacy_Mrec has been removed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4694
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4695
* HOL-Statespace: command 'statespace' uses mandatory qualifier for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4696
import of parent, as for general 'locale' expressions. INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4697
remove '!' and add '?' as required.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4698
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4699
* HOL-Decision_Procs: The "approximation" method works with "powr"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4700
(exponentiation on real numbers) again.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4701
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4702
* HOL-Multivariate_Analysis: theory Cauchy_Integral_Thm with Contour
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4703
integrals (= complex path integrals), Cauchy's integral theorem, winding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4704
numbers and Cauchy's integral formula, Liouville theorem, Fundamental
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4705
Theorem of Algebra. Ported from HOL Light.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4706
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4707
* HOL-Multivariate_Analysis: topological concepts such as connected
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4708
components, homotopic paths and the inside or outside of a set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4709
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4710
* HOL-Multivariate_Analysis: radius of convergence of power series and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4711
various summability tests; Harmonic numbers and the Euler–Mascheroni
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4712
constant; the Generalised Binomial Theorem; the complex and real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4713
Gamma/log-Gamma/Digamma/ Polygamma functions and their most important
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4714
properties.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4715
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4716
* HOL-Probability: The central limit theorem based on Levy's uniqueness
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4717
and continuity theorems, weak convergence, and characterisitc functions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4718
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4719
* HOL-Data_Structures: new and growing session of standard data
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4720
structures.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4721
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4722
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4723
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4724
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4725
* The following combinators for low-level profiling of the ML runtime
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4726
system are available:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4727
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4728
  profile_time          (*CPU time*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4729
  profile_time_thread   (*CPU time on this thread*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4730
  profile_allocations   (*overall heap allocations*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4731
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4732
* Antiquotation @{undefined} or \<^undefined> inlines (raise Match).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4733
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4734
* Antiquotation @{method NAME} inlines the (checked) name of the given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4735
Isar proof method.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4736
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4737
* Pretty printing of Poly/ML compiler output in Isabelle has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4738
improved: proper treatment of break offsets and blocks with consistent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4739
breaks.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4740
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4741
* The auxiliary module Pure/display.ML has been eliminated. Its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4742
elementary thm print operations are now in Pure/more_thm.ML and thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4743
called Thm.pretty_thm, Thm.string_of_thm etc. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4744
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4745
* Simproc programming interfaces have been simplified:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4746
Simplifier.make_simproc and Simplifier.define_simproc supersede various
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4747
forms of Simplifier.mk_simproc, Simplifier.simproc_global etc. Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4748
term patterns for the left-hand sides are specified with implicitly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4749
fixed variables, like top-level theorem statements. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4751
* Instantiation rules have been re-organized as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4752
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4753
  Thm.instantiate  (*low-level instantiation with named arguments*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4754
  Thm.instantiate' (*version with positional arguments*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4755
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4756
  Drule.infer_instantiate  (*instantiation with type inference*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4757
  Drule.infer_instantiate'  (*version with positional arguments*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4758
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4759
The LHS only requires variable specifications, instead of full terms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4760
Old cterm_instantiate is superseded by infer_instantiate.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4761
INCOMPATIBILITY, need to re-adjust some ML names and types accordingly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4762
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4763
* Old tactic shorthands atac, rtac, etac, dtac, ftac have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4764
discontinued. INCOMPATIBILITY, use regular assume_tac, resolve_tac etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4765
instead (with proper context).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4766
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4767
* Thm.instantiate (and derivatives) no longer require the LHS of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4768
instantiation to be certified: plain variables are given directly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4769
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4770
* Subgoal.SUBPROOF and Subgoal.FOCUS combinators use anonymous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4771
quasi-bound variables (like the Simplifier), instead of accidentally
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4772
named local fixes. This has the potential to improve stability of proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4773
tools, but can also cause INCOMPATIBILITY for tools that don't observe
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4774
the proof context discipline.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4775
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4776
* Isar proof methods are based on a slightly more general type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4777
context_tactic, which allows to change the proof context dynamically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4778
(e.g. to update cases) and indicate explicit Seq.Error results. Former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4779
METHOD_CASES is superseded by CONTEXT_METHOD; further combinators are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4780
provided in src/Pure/Isar/method.ML for convenience. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4781
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4782
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4783
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4784
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4785
* Command-line tool "isabelle console" enables print mode "ASCII".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4786
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4787
* Command-line tool "isabelle update_then" expands old Isar command
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4788
conflations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4789
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4790
    hence  ~>  then have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4791
    thus   ~>  then show
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4792
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4793
This syntax is more orthogonal and improves readability and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4794
maintainability of proofs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4795
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4796
* Global session timeout is multiplied by timeout_scale factor. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4797
allows to adjust large-scale tests (e.g. AFP) to overall hardware
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4798
performance.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4799
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4800
* Property values in etc/symbols may contain spaces, if written with the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4801
replacement character "␣" (Unicode point 0x2324). For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4802
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4803
    \<star>  code: 0x0022c6  group: operator  font: Deja␣Vu␣Sans␣Mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4804
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4805
* Java runtime environment for x86_64-windows allows to use larger heap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4806
space.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4807
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4808
* Java runtime options are determined separately for 32bit vs. 64bit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4809
platforms as follows.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4810
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4811
  - Isabelle desktop application: platform-specific files that are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4812
    associated with the main app bundle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4813
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4814
  - isabelle jedit: settings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4815
    JEDIT_JAVA_SYSTEM_OPTIONS
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4816
    JEDIT_JAVA_OPTIONS32 vs. JEDIT_JAVA_OPTIONS64
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4817
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4818
  - isabelle build: settings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4819
    ISABELLE_BUILD_JAVA_OPTIONS32 vs. ISABELLE_BUILD_JAVA_OPTIONS64
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4820
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4821
* Bash shell function "jvmpath" has been renamed to "platform_path": it
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4822
is relevant both for Poly/ML and JVM processes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4823
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4824
* Poly/ML default platform architecture may be changed from 32bit to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4825
64bit via system option ML_system_64. A system restart (and rebuild) is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4826
required after change.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4827
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4828
* Poly/ML 5.6 runs natively on x86-windows and x86_64-windows, which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4829
both allow larger heap space than former x86-cygwin.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4830
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4831
* Heap images are 10-15% smaller due to less wasteful persistent theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4832
content (using ML type theory_id instead of theory);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4833
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4834
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4835
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4836
New in Isabelle2015 (May 2015)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4837
------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4838
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4839
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4840
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4841
* Local theory specification commands may have a 'private' or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4842
'qualified' modifier to restrict name space accesses to the local scope,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4843
as provided by some "context begin ... end" block. For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4844
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4845
  context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4846
  begin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4847
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4848
  private definition ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4849
  private lemma ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4850
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4851
  qualified definition ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4852
  qualified lemma ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4853
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4854
  lemma ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4855
  theorem ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4856
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4857
  end
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4858
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4859
* Command 'experiment' opens an anonymous locale context with private
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4860
naming policy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4861
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4862
* Command 'notepad' requires proper nesting of begin/end and its proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4863
structure in the body: 'oops' is no longer supported here. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4864
INCOMPATIBILITY, use 'sorry' instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4865
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4866
* Command 'named_theorems' declares a dynamic fact within the context,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4867
together with an attribute to maintain the content incrementally. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4868
supersedes functor Named_Thms in Isabelle/ML, but with a subtle change
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4869
of semantics due to external visual order vs. internal reverse order.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4870
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4871
* 'find_theorems': search patterns which are abstractions are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4872
schematically expanded before search. Search results match the naive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4873
expectation more closely, particularly wrt. abbreviations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4874
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4875
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4876
* Commands 'method_setup' and 'attribute_setup' now work within a local
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4877
theory context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4878
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4879
* Outer syntax commands are managed authentically within the theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4880
context, without implicit global state. Potential for accidental
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4881
INCOMPATIBILITY, make sure that required theories are really imported.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4882
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4883
* Historical command-line terminator ";" is no longer accepted (and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4884
already used differently in Isar). Minor INCOMPATIBILITY, use "isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4885
update_semicolons" to remove obsolete semicolons from old theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4886
sources.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4887
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4888
* Structural composition of proof methods (meth1; meth2) in Isar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4889
corresponds to (tac1 THEN_ALL_NEW tac2) in ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4890
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4891
* The Eisbach proof method language allows to define new proof methods
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4892
by combining existing ones with their usual syntax. The "match" proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4893
method provides basic fact/term matching in addition to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4894
premise/conclusion matching through Subgoal.focus, and binds fact names
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4895
from matches as well as term patterns within matches. The Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4896
documentation provides an entry "eisbach" for the Eisbach User Manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4897
Sources and various examples are in ~~/src/HOL/Eisbach/.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4899
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4900
*** Prover IDE -- Isabelle/Scala/jEdit ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4901
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4902
* Improved folding mode "isabelle" based on Isar syntax. Alternatively,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4903
the "sidekick" mode may be used for document structure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4904
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4905
* Extended bracket matching based on Isar language structure. System
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4906
option jedit_structure_limit determines maximum number of lines to scan
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4907
in the buffer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4908
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4909
* Support for BibTeX files: context menu, context-sensitive token
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4910
marker, SideKick parser.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4911
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4912
* Document antiquotation @{cite} provides formal markup, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4913
interpreted semi-formally based on .bib files that happen to be open in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4914
the editor (hyperlinks, completion etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4915
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4916
* Less waste of vertical space via negative line spacing (see Global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4917
Options / Text Area).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4918
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4919
* Improved graphview panel with optional output of PNG or PDF, for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4920
display of 'thy_deps', 'class_deps' etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4921
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4922
* The commands 'thy_deps' and 'class_deps' allow optional bounds to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4923
restrict the visualized hierarchy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4924
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4925
* Improved scheduling for asynchronous print commands (e.g. provers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4926
managed by the Sledgehammer panel) wrt. ongoing document processing.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4927
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4928
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4929
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4930
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4931
* Document markup commands 'chapter', 'section', 'subsection',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4932
'subsubsection', 'text', 'txt', 'text_raw' work uniformly in any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4933
context, even before the initial 'theory' command. Obsolete proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4934
commands 'sect', 'subsect', 'subsubsect', 'txt_raw' have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4935
discontinued, use 'section', 'subsection', 'subsubsection', 'text_raw'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4936
instead. The old 'header' command is still retained for some time, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4937
should be replaced by 'chapter', 'section' etc. (using "isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4938
update_header"). Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4939
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4940
* Official support for "tt" style variants, via \isatt{...} or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4941
\begin{isabellett}...\end{isabellett}. The somewhat fragile \verb or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4942
verbatim environment of LaTeX is no longer used. This allows @{ML} etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4943
as argument to other macros (such as footnotes).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4944
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4945
* Document antiquotation @{verbatim} prints ASCII text literally in "tt"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4946
style.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4947
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4948
* Discontinued obsolete option "document_graph": session_graph.pdf is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4949
produced unconditionally for HTML browser_info and PDF-LaTeX document.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4950
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4951
* Diagnostic commands and document markup commands within a proof do not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4952
affect the command tag for output. Thus commands like 'thm' are subject
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4953
to proof document structure, and no longer "stick out" accidentally.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4954
Commands 'text' and 'txt' merely differ in the LaTeX style, not their
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4955
tags. Potential INCOMPATIBILITY in exotic situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4956
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4957
* System option "pretty_margin" is superseded by "thy_output_margin",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4958
which is also accessible via document antiquotation option "margin".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4959
Only the margin for document output may be changed, but not the global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4960
pretty printing: that is 76 for plain console output, and adapted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4961
dynamically in GUI front-ends. Implementations of document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4962
antiquotations need to observe the margin explicitly according to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4963
Thy_Output.string_of_margin. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4964
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4965
* Specification of 'document_files' in the session ROOT file is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4966
mandatory for document preparation. The legacy mode with implicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4967
copying of the document/ directory is no longer supported. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4968
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4969
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4970
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4971
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4972
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4973
* Proof methods with explicit instantiation ("rule_tac", "subgoal_tac"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4974
etc.) allow an optional context of local variables ('for' declaration):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4975
these variables become schematic in the instantiated theorem; this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4976
behaviour is analogous to 'for' in attributes "where" and "of".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4977
Configuration option rule_insts_schematic (default false) controls use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4978
of schematic variables outside the context. Minor INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4979
declare rule_insts_schematic = true temporarily and update to use local
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4980
variable declarations or dummy patterns instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4981
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4982
* Explicit instantiation via attributes "where", "of", and proof methods
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4983
"rule_tac" with derivatives like "subgoal_tac" etc. admit dummy patterns
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4984
("_") that stand for anonymous local variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4985
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4986
* Generated schematic variables in standard format of exported facts are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4987
incremented to avoid material in the proof context. Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4988
INCOMPATIBILITY, explicit instantiation sometimes needs to refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4989
different index.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4990
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4991
* Lexical separation of signed and unsigned numerals: categories "num"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4992
and "float" are unsigned. INCOMPATIBILITY: subtle change in precedence
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4993
of numeral signs, particularly in expressions involving infix syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4994
like "(- 1) ^ n".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4995
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4996
* Old inner token category "xnum" has been discontinued.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4997
INCOMPATIBILITY for exotic syntax: may use mixfix grammar with "num"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4998
token category instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  4999
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5000
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5001
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5002
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5003
* New (co)datatype package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5004
  - The 'datatype_new' command has been renamed 'datatype'. The old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5005
    command of that name is now called 'old_datatype' and is provided
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5006
    by "~~/src/HOL/Library/Old_Datatype.thy". See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5007
    'isabelle doc datatypes' for information on porting.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5008
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5009
  - Renamed theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5010
      disc_corec ~> corec_disc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5011
      disc_corec_iff ~> corec_disc_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5012
      disc_exclude ~> distinct_disc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5013
      disc_exhaust ~> exhaust_disc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5014
      disc_map_iff ~> map_disc_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5015
      sel_corec ~> corec_sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5016
      sel_exhaust ~> exhaust_sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5017
      sel_map ~> map_sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5018
      sel_set ~> set_sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5019
      sel_split ~> split_sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5020
      sel_split_asm ~> split_sel_asm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5021
      strong_coinduct ~> coinduct_strong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5022
      weak_case_cong ~> case_cong_weak
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5023
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5024
  - The "no_code" option to "free_constructors", "datatype_new", and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5025
    "codatatype" has been renamed "plugins del: code".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5026
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5027
  - The rules "set_empty" have been removed. They are easy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5028
    consequences of other set rules "by auto".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5029
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5030
  - The rule "set_cases" is now registered with the "[cases set]"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5031
    attribute. This can influence the behavior of the "cases" proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5032
    method when more than one case rule is applicable (e.g., an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5033
    assumption is of the form "w : set ws" and the method "cases w"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5034
    is invoked). The solution is to specify the case rule explicitly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5035
    (e.g. "cases w rule: widget.exhaust").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5036
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5037
  - Renamed theories:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5038
      BNF_Comp ~> BNF_Composition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5039
      BNF_FP_Base ~> BNF_Fixpoint_Base
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5040
      BNF_GFP ~> BNF_Greatest_Fixpoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5041
      BNF_LFP ~> BNF_Least_Fixpoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5042
      BNF_Constructions_on_Wellorders ~> BNF_Wellorder_Constructions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5043
      Cardinals/Constructions_on_Wellorders ~> Cardinals/Wellorder_Constructions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5044
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5045
  - Lifting and Transfer setup for basic HOL types sum and prod (also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5046
    option) is now performed by the BNF package. Theories Lifting_Sum,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5047
    Lifting_Product and Lifting_Option from Main became obsolete and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5048
    were removed. Changed definitions of the relators rel_prod and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5049
    rel_sum (using inductive).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5050
    INCOMPATIBILITY: use rel_prod.simps and rel_sum.simps instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5051
    of rel_prod_def and rel_sum_def.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5052
    Minor INCOMPATIBILITY: (rarely used by name) transfer theorem names
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5053
    changed (e.g. map_prod_transfer ~> prod.map_transfer).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5054
  - Parametricity theorems for map functions, relators, set functions,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5055
    constructors, case combinators, discriminators, selectors and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5056
    (co)recursors are automatically proved and registered as transfer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5057
    rules.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5058
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5059
* Old datatype package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5060
  - The old 'datatype' command has been renamed 'old_datatype', and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5061
    'rep_datatype' has been renamed 'old_rep_datatype'. They are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5062
    provided by "~~/src/HOL/Library/Old_Datatype.thy". See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5063
    'isabelle doc datatypes' for information on porting.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5064
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5065
  - Renamed theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5066
      weak_case_cong ~> case_cong_weak
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5067
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5068
  - Renamed theory:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5069
      ~~/src/HOL/Datatype.thy ~> ~~/src/HOL/Library/Old_Datatype.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5070
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5071
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5072
* Nitpick:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5073
  - Fixed soundness bug related to the strict and non-strict subset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5074
    operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5075
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5076
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5077
  - CVC4 is now included with Isabelle instead of CVC3 and run by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5078
    default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5079
  - Z3 is now always enabled by default, now that it is fully open
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5080
    source. The "z3_non_commercial" option is discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5081
  - Minimization is now always enabled by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5082
    Removed sub-command:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5083
      min
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5084
  - Proof reconstruction, both one-liners and Isar, has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5085
    dramatically improved.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5086
  - Improved support for CVC4 and veriT.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5088
* Old and new SMT modules:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5089
  - The old 'smt' method has been renamed 'old_smt' and moved to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5090
    'src/HOL/Library/Old_SMT.thy'. It is provided for compatibility,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5091
    until applications have been ported to use the new 'smt' method. For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5092
    the method to work, an older version of Z3 (e.g. Z3 3.2 or 4.0) must
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5093
    be installed, and the environment variable "OLD_Z3_SOLVER" must
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5094
    point to it.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5095
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5096
  - The 'smt2' method has been renamed 'smt'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5097
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5098
  - New option 'smt_reconstruction_step_timeout' to limit the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5099
    reconstruction time of Z3 proof steps in the new 'smt' method.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5100
  - New option 'smt_statistics' to display statistics of the new 'smt'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5101
    method, especially runtime statistics of Z3 proof reconstruction.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5102
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5103
* Lifting: command 'lift_definition' allows to execute lifted constants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5104
that have as a return type a datatype containing a subtype. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5105
overcomes long-time limitations in the area of code generation and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5106
lifting, and avoids tedious workarounds.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5107
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5108
* Command and antiquotation "value" provide different evaluation slots
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5109
(again), where the previous strategy (NBE after ML) serves as default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5110
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5111
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5112
* Add NO_MATCH-simproc, allows to check for syntactic non-equality.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5113
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5114
* field_simps: Use NO_MATCH-simproc for distribution rules, to avoid
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5115
non-termination in case of distributing a division. With this change
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5116
field_simps is in some cases slightly less powerful, if it fails try to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5117
add algebra_simps, or use divide_simps. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5118
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5119
* Separate class no_zero_divisors has been given up in favour of fully
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5120
algebraic semiring_no_zero_divisors. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5121
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5122
* Class linordered_semidom really requires no zero divisors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5123
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5124
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5125
* Classes division_ring, field and linordered_field always demand
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5126
"inverse 0 = 0". Given up separate classes division_ring_inverse_zero,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5127
field_inverse_zero and linordered_field_inverse_zero. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5128
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5129
* Classes cancel_ab_semigroup_add / cancel_monoid_add specify explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5130
additive inverse operation. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5131
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5132
* Complex powers and square roots. The functions "ln" and "powr" are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5133
overloaded for types real and complex, and 0 powr y = 0 by definition.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5134
INCOMPATIBILITY: type constraints may be necessary.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5135
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5136
* The functions "sin" and "cos" are now defined for any type of sort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5137
"{real_normed_algebra_1,banach}" type, so in particular on "real" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5138
"complex" uniformly. Minor INCOMPATIBILITY: type constraints may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5139
needed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5140
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5141
* New library of properties of the complex transcendental functions sin,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5142
cos, tan, exp, Ln, Arctan, Arcsin, Arccos. Ported from HOL Light.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5143
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5144
* The factorial function, "fact", now has type "nat => 'a" (of a sort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5145
that admits numeric types including nat, int, real and complex.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5146
INCOMPATIBILITY: an expression such as "fact 3 = 6" may require a type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5147
constraint, and the combination "real (fact k)" is likely to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5148
unsatisfactory. If a type conversion is still necessary, then use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5149
"of_nat (fact k)" or "real_of_nat (fact k)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5150
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5151
* Removed functions "natfloor" and "natceiling", use "nat o floor" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5152
"nat o ceiling" instead. A few of the lemmas have been retained and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5153
adapted: in their names "natfloor"/"natceiling" has been replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5154
"nat_floor"/"nat_ceiling".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5155
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5156
* Qualified some duplicated fact names required for boostrapping the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5157
type class hierarchy:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5158
  ab_add_uminus_conv_diff ~> diff_conv_add_uminus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5159
  field_inverse_zero ~> inverse_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5160
  field_divide_inverse ~> divide_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5161
  field_inverse ~> left_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5162
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5163
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5164
* Eliminated fact duplicates:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5165
  mult_less_imp_less_right ~> mult_right_less_imp_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5166
  mult_less_imp_less_left ~> mult_left_less_imp_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5167
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5168
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5169
* Fact consolidation: even_less_0_iff is subsumed by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5170
double_add_less_zero_iff_single_add_less_zero (simp by default anyway).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5171
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5172
* Generalized and consolidated some theorems concerning divsibility:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5173
  dvd_reduce ~> dvd_add_triv_right_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5174
  dvd_plus_eq_right ~> dvd_add_right_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5175
  dvd_plus_eq_left ~> dvd_add_left_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5176
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5177
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5178
* "even" and "odd" are mere abbreviations for "2 dvd _" and "~ 2 dvd _"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5179
and part of theory Main.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5180
  even_def ~> even_iff_mod_2_eq_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5181
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5182
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5183
* Lemma name consolidation: divide_Numeral1 ~> divide_numeral_1. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5184
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5185
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5186
* Bootstrap of listsum as special case of abstract product over lists.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5187
Fact rename:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5188
    listsum_def ~> listsum.eq_foldr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5189
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5190
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5191
* Product over lists via constant "listprod".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5192
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5193
* Theory List: renamed drop_Suc_conv_tl and nth_drop' to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5194
Cons_nth_drop_Suc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5195
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5196
* New infrastructure for compiling, running, evaluating and testing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5197
generated code in target languages in HOL/Library/Code_Test. See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5198
HOL/Codegenerator_Test/Code_Test* for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5199
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5200
* Library/Multiset:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5201
  - Introduced "replicate_mset" operation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5202
  - Introduced alternative characterizations of the multiset ordering in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5203
    "Library/Multiset_Order".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5204
  - Renamed multiset ordering:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5205
      <# ~> #<#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5206
      <=# ~> #<=#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5207
      \<subset># ~> #\<subset>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5208
      \<subseteq># ~> #\<subseteq>#
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5209
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5210
  - Introduced abbreviations for ill-named multiset operations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5211
      <#, \<subset># abbreviate < (strict subset)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5212
      <=#, \<le>#, \<subseteq># abbreviate <= (subset or equal)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5213
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5214
  - Renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5215
      in_multiset_of ~> in_multiset_in_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5216
      Multiset.fold ~> fold_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5217
      Multiset.filter ~> filter_mset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5218
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5219
  - Removed mcard, is equal to size.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5220
  - Added attributes:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5221
      image_mset.id [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5222
      image_mset_id [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5223
      elem_multiset_of_set [simp, intro]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5224
      comp_fun_commute_plus_mset [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5225
      comp_fun_commute.fold_mset_insert [OF comp_fun_commute_plus_mset, simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5226
      in_mset_fold_plus_iff [iff]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5227
      set_of_Union_mset [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5228
      in_Union_mset_iff [iff]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5229
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5230
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5231
* Library/Sum_of_Squares: simplified and improved "sos" method. Always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5232
use local CSDP executable, which is much faster than the NEOS server.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5233
The "sos_cert" functionality is invoked as "sos" with additional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5234
argument. Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5235
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5236
* HOL-Decision_Procs: New counterexample generator quickcheck
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5237
[approximation] for inequalities of transcendental functions. Uses
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5238
hardware floating point arithmetic to randomly discover potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5239
counterexamples. Counterexamples are certified with the "approximation"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5240
method. See HOL/Decision_Procs/ex/Approximation_Quickcheck_Ex.thy for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5241
examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5242
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5243
* HOL-Probability: Reworked measurability prover
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5244
  - applies destructor rules repeatedly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5245
  - removed application splitting (replaced by destructor rule)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5246
  - added congruence rules to rewrite measure spaces under the sets
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5247
    projection
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5248
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5249
* New proof method "rewrite" (in theory ~~/src/HOL/Library/Rewrite) for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5250
single-step rewriting with subterm selection based on patterns.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5251
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5252
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5253
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5254
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5255
* Subtle change of name space policy: undeclared entries are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5256
considered inaccessible, instead of accessible via the fully-qualified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5257
internal name. This mainly affects Name_Space.intern (and derivatives),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5258
which may produce an unexpected Long_Name.hidden prefix. Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5259
contemporary applications use the strict Name_Space.check (and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5260
derivatives) instead, which is not affected by the change. Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5261
INCOMPATIBILITY in rare applications of Name_Space.intern.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5262
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5263
* Subtle change of error semantics of Toplevel.proof_of: regular user
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5264
ERROR instead of internal Toplevel.UNDEF.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5265
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5266
* Basic combinators map, fold, fold_map, split_list, apply are available
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5267
as parameterized antiquotations, e.g. @{map 4} for lists of quadruples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5268
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5269
* Renamed "pairself" to "apply2", in accordance to @{apply 2}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5270
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5271
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5272
* Former combinators NAMED_CRITICAL and CRITICAL for central critical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5273
sections have been discontinued, in favour of the more elementary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5274
Multithreading.synchronized and its high-level derivative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5275
Synchronized.var (which is usually sufficient in applications). Subtle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5276
INCOMPATIBILITY: synchronized access needs to be atomic and cannot be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5277
nested.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5278
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5279
* Synchronized.value (ML) is actually synchronized (as in Scala): subtle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5280
change of semantics with minimal potential for INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5281
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5282
* The main operations to certify logical entities are Thm.ctyp_of and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5283
Thm.cterm_of with a local context; old-style global theory variants are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5284
available as Thm.global_ctyp_of and Thm.global_cterm_of.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5285
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5286
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5287
* Elementary operations in module Thm are no longer pervasive.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5288
INCOMPATIBILITY, need to use qualified Thm.prop_of, Thm.cterm_of,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5289
Thm.term_of etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5290
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5291
* Proper context for various elementary tactics: assume_tac,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5292
resolve_tac, eresolve_tac, dresolve_tac, forward_tac, match_tac,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5293
compose_tac, Splitter.split_tac etc. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5294
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5295
* Tactical PARALLEL_ALLGOALS is the most common way to refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5296
PARALLEL_GOALS.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5297
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5298
* Goal.prove_multi is superseded by the fully general Goal.prove_common,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5299
which also allows to specify a fork priority.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5300
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5301
* Antiquotation @{command_spec "COMMAND"} is superseded by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5302
@{command_keyword COMMAND} (usually without quotes and with PIDE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5303
markup). Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5304
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5305
* Cartouches within ML sources are turned into values of type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5306
Input.source (with formal position information).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5308
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5309
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5310
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5311
* The Isabelle tool "update_cartouches" changes theory files to use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5312
cartouches instead of old-style {* verbatim *} or `alt_string` tokens.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5313
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5314
* The Isabelle tool "build" provides new options -X, -k, -x.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5315
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5316
* Discontinued old-fashioned "codegen" tool. Code generation can always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5317
be externally triggered using an appropriate ROOT file plus a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5318
corresponding theory. Parametrization is possible using environment
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5319
variables, or ML snippets in the most extreme cases. Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5320
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5321
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5322
* JVM system property "isabelle.threads" determines size of Scala thread
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5323
pool, like Isabelle system option "threads" for ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5324
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5325
* JVM system property "isabelle.laf" determines the default Swing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5326
look-and-feel, via internal class name or symbolic name as in the jEdit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5327
menu Global Options / Appearance.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5328
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5329
* Support for Proof General and Isar TTY loop has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5330
Minor INCOMPATIBILITY, use standard PIDE infrastructure instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5331
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5332
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5333
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5334
New in Isabelle2014 (August 2014)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5335
---------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5336
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5337
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5338
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5339
* Support for official Standard ML within the Isabelle context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5340
Command 'SML_file' reads and evaluates the given Standard ML file.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5341
Toplevel bindings are stored within the theory context; the initial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5342
environment is restricted to the Standard ML implementation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5343
Poly/ML, without the add-ons of Isabelle/ML.  Commands 'SML_import'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5344
and 'SML_export' allow to exchange toplevel bindings between the two
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5345
separate environments.  See also ~~/src/Tools/SML/Examples.thy for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5346
some examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5347
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5348
* Standard tactics and proof methods such as "clarsimp", "auto" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5349
"safe" now preserve equality hypotheses "x = expr" where x is a free
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5350
variable.  Locale assumptions and chained facts containing "x"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5351
continue to be useful.  The new method "hypsubst_thin" and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5352
configuration option "hypsubst_thin" (within the attribute name space)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5353
restore the previous behavior.  INCOMPATIBILITY, especially where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5354
induction is done after these methods or when the names of free and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5355
bound variables clash.  As first approximation, old proofs may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5356
repaired by "using [[hypsubst_thin = true]]" in the critical spot.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5357
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5358
* More static checking of proof methods, which allows the system to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5359
form a closure over the concrete syntax.  Method arguments should be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5360
processed in the original proof context as far as possible, before
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5361
operating on the goal state.  In any case, the standard discipline for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5362
subgoal-addressing needs to be observed: no subgoals or a subgoal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5363
number that is out of range produces an empty result sequence, not an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5364
exception.  Potential INCOMPATIBILITY for non-conformant tactical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5365
proof tools.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5366
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5367
* Lexical syntax (inner and outer) supports text cartouches with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5368
arbitrary nesting, and without escapes of quotes etc.  The Prover IDE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5369
supports input via ` (backquote).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5370
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5371
* The outer syntax categories "text" (for formal comments and document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5372
markup commands) and "altstring" (for literal fact references) allow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5373
cartouches as well, in addition to the traditional mix of quotations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5374
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5375
* Syntax of document antiquotation @{rail} now uses \<newline> instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5376
of "\\", to avoid the optical illusion of escaped backslash within
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5377
string token.  General renovation of its syntax using text cartouches.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5378
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5379
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5380
* Discontinued legacy_isub_isup, which was a temporary workaround for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5381
Isabelle/ML in Isabelle2013-1.  The prover process no longer accepts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5382
old identifier syntax with \<^isub> or \<^isup>.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5383
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5384
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5385
* Document antiquotation @{url} produces markup for the given URL,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5386
which results in an active hyperlink within the text.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5387
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5388
* Document antiquotation @{file_unchecked} is like @{file}, but does
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5389
not check existence within the file-system.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5390
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5391
* Updated and extended manuals: codegen, datatypes, implementation,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5392
isar-ref, jedit, system.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5393
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5394
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5395
*** Prover IDE -- Isabelle/Scala/jEdit ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5396
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5397
* Improved Document panel: simplified interaction where every single
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5398
mouse click (re)opens document via desktop environment or as jEdit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5399
buffer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5400
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5401
* Support for Navigator plugin (with toolbar buttons), with connection
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5402
to PIDE hyperlinks.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5403
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5404
* Auxiliary files ('ML_file' etc.) are managed by the Prover IDE.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5405
Open text buffers take precedence over copies within the file-system.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5406
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5407
* Improved support for Isabelle/ML, with jEdit mode "isabelle-ml" for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5408
auxiliary ML files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5409
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5410
* Improved syntactic and semantic completion mechanism, with simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5411
templates, completion language context, name-space completion,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5412
file-name completion, spell-checker completion.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5413
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5414
* Refined GUI popup for completion: more robust key/mouse event
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5415
handling and propagation to enclosing text area -- avoid loosing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5416
keystrokes with slow / remote graphics displays.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5417
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5418
* Completion popup supports both ENTER and TAB (default) to select an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5419
item, depending on Isabelle options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5420
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5421
* Refined insertion of completion items wrt. jEdit text: multiple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5422
selections, rectangular selections, rectangular selection as "tall
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5423
caret".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5424
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5425
* Integrated spell-checker for document text, comments etc. with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5426
completion popup and context-menu.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5427
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5428
* More general "Query" panel supersedes "Find" panel, with GUI access
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5429
to commands 'find_theorems' and 'find_consts', as well as print
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5430
operations for the context.  Minor incompatibility in keyboard
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5431
shortcuts etc.: replace action isabelle-find by isabelle-query.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5432
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5433
* Search field for all output panels ("Output", "Query", "Info" etc.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5434
to highlight text via regular expression.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5435
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5436
* Option "jedit_print_mode" (see also "Plugin Options / Isabelle /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5437
General") allows to specify additional print modes for the prover
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5438
process, without requiring old-fashioned command-line invocation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5439
"isabelle jedit -m MODE".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5440
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5441
* More support for remote files (e.g. http) using standard Java
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5442
networking operations instead of jEdit virtual file-systems.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5444
* Empty editors buffers that are no longer required (e.g.\ via theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5445
imports) are automatically removed from the document model.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5446
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5447
* Improved monitor panel.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5448
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5449
* Improved Console/Scala plugin: more uniform scala.Console output,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5450
more robust treatment of threads and interrupts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5451
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5452
* Improved management of dockable windows: clarified keyboard focus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5453
and window placement wrt. main editor view; optional menu item to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5454
"Detach" a copy where this makes sense.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5455
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5456
* New Simplifier Trace panel provides an interactive view of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5457
simplification process, enabled by the "simp_trace_new" attribute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5458
within the context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5459
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5460
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5461
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5462
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5463
* Low-level type-class commands 'classes', 'classrel', 'arities' have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5464
been discontinued to avoid the danger of non-trivial axiomatization
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5465
that is not immediately visible.  INCOMPATIBILITY, use regular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5466
'instance' command with proof.  The required OFCLASS(...) theorem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5467
might be postulated via 'axiomatization' beforehand, or the proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5468
finished trivially if the underlying class definition is made vacuous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5469
(without any assumptions).  See also Isabelle/ML operations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5470
Axclass.class_axiomatization, Axclass.classrel_axiomatization,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5471
Axclass.arity_axiomatization.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5472
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5473
* Basic constants of Pure use more conventional names and are always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5474
qualified.  Rare INCOMPATIBILITY, but with potentially serious
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5475
consequences, notably for tools in Isabelle/ML.  The following
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5476
renaming needs to be applied:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5477
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5478
  ==             ~>  Pure.eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5479
  ==>            ~>  Pure.imp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5480
  all            ~>  Pure.all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5481
  TYPE           ~>  Pure.type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5482
  dummy_pattern  ~>  Pure.dummy_pattern
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5483
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5484
Systematic porting works by using the following theory setup on a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5485
*previous* Isabelle version to introduce the new name accesses for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5486
old constants:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5487
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5488
setup {*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5489
  fn thy => thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5490
    |> Sign.root_path
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5491
    |> Sign.const_alias (Binding.qualify true "Pure" @{binding eq}) "=="
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5492
    |> Sign.const_alias (Binding.qualify true "Pure" @{binding imp}) "==>"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5493
    |> Sign.const_alias (Binding.qualify true "Pure" @{binding all}) "all"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5494
    |> Sign.restore_naming thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5495
*}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5496
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5497
Thus ML antiquotations like @{const_name Pure.eq} may be used already.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5498
Later the application is moved to the current Isabelle version, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5499
the auxiliary aliases are deleted.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5500
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5501
* Attributes "where" and "of" allow an optional context of local
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5502
variables ('for' declaration): these variables become schematic in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5503
instantiated theorem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5504
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5505
* Obsolete attribute "standard" has been discontinued (legacy since
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5506
Isabelle2012).  Potential INCOMPATIBILITY, use explicit 'for' context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5507
where instantiations with schematic variables are intended (for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5508
declaration commands like 'lemmas' or attributes like "of").  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5509
following temporary definition may help to port old applications:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5510
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5511
  attribute_setup standard =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5512
    "Scan.succeed (Thm.rule_attribute (K Drule.export_without_context))"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5513
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5514
* More thorough check of proof context for goal statements and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5515
attributed fact expressions (concerning background theory, declared
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5516
hyps).  Potential INCOMPATIBILITY, tools need to observe standard
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5517
context discipline.  See also Assumption.add_assumes and the more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5518
primitive Thm.assume_hyps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5519
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5520
* Inner syntax token language allows regular quoted strings "..."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5521
(only makes sense in practice, if outer syntax is delimited
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5522
differently, e.g. via cartouches).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5523
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5524
* Command 'print_term_bindings' supersedes 'print_binds' for clarity,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5525
but the latter is retained some time as Proof General legacy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5526
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5527
* Code generator preprocessor: explicit control of simp tracing on a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5528
per-constant basis.  See attribute "code_preproc".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5529
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5531
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5532
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5533
* Code generator: enforce case of identifiers only for strict target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5534
language requirements.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5535
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5536
* Code generator: explicit proof contexts in many ML interfaces.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5537
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5538
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5539
* Code generator: minimize exported identifiers by default.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5540
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5541
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5542
* Code generation for SML and OCaml: dropped arcane "no_signatures"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5543
option.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5544
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5545
* "declare [[code abort: ...]]" replaces "code_abort ...".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5546
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5547
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5548
* "declare [[code drop: ...]]" drops all code equations associated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5549
with the given constants.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5550
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5551
* Code generations are provided for make, fields, extend and truncate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5552
operations on records.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5553
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5554
* Command and antiquotation "value" are now hardcoded against nbe and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5555
ML.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5556
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5557
* Renamed command 'enriched_type' to 'functor'. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5558
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5559
* The symbol "\<newline>" may be used within char or string literals
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5560
to represent (Char Nibble0 NibbleA), i.e. ASCII newline.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5561
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5562
* Qualified String.implode and String.explode.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5563
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5564
* Simplifier: Enhanced solver of preconditions of rewrite rules can
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5565
now deal with conjunctions.  For help with converting proofs, the old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5566
behaviour of the simplifier can be restored like this: declare/using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5567
[[simp_legacy_precond]].  This configuration option will disappear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5568
again in the future.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5569
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5570
* Simproc "finite_Collect" is no longer enabled by default, due to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5571
spurious crashes and other surprises.  Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5572
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5573
* Moved new (co)datatype package and its dependencies from session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5574
  "HOL-BNF" to "HOL".  The commands 'bnf', 'wrap_free_constructors',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5575
  'datatype_new', 'codatatype', 'primcorec', 'primcorecursive' are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5576
  part of theory "Main".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5577
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5578
  Theory renamings:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5579
    FunDef.thy ~> Fun_Def.thy (and Fun_Def_Base.thy)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5580
    Library/Wfrec.thy ~> Wfrec.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5581
    Library/Zorn.thy ~> Zorn.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5582
    Cardinals/Order_Relation.thy ~> Order_Relation.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5583
    Library/Order_Union.thy ~> Cardinals/Order_Union.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5584
    Cardinals/Cardinal_Arithmetic_Base.thy ~> BNF_Cardinal_Arithmetic.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5585
    Cardinals/Cardinal_Order_Relation_Base.thy ~> BNF_Cardinal_Order_Relation.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5586
    Cardinals/Constructions_on_Wellorders_Base.thy ~> BNF_Constructions_on_Wellorders.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5587
    Cardinals/Wellorder_Embedding_Base.thy ~> BNF_Wellorder_Embedding.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5588
    Cardinals/Wellorder_Relation_Base.thy ~> BNF_Wellorder_Relation.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5589
    BNF/Ctr_Sugar.thy ~> Ctr_Sugar.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5590
    BNF/Basic_BNFs.thy ~> Basic_BNFs.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5591
    BNF/BNF_Comp.thy ~> BNF_Comp.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5592
    BNF/BNF_Def.thy ~> BNF_Def.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5593
    BNF/BNF_FP_Base.thy ~> BNF_FP_Base.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5594
    BNF/BNF_GFP.thy ~> BNF_GFP.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5595
    BNF/BNF_LFP.thy ~> BNF_LFP.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5596
    BNF/BNF_Util.thy ~> BNF_Util.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5597
    BNF/Coinduction.thy ~> Coinduction.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5598
    BNF/More_BNFs.thy ~> Library/More_BNFs.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5599
    BNF/Countable_Type.thy ~> Library/Countable_Set_Type.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5600
    BNF/Examples/* ~> BNF_Examples/*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5601
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5602
  New theories:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5603
    Wellorder_Extension.thy (split from Zorn.thy)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5604
    Library/Cardinal_Notations.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5605
    Library/BNF_Axomatization.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5606
    BNF_Examples/Misc_Primcorec.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5607
    BNF_Examples/Stream_Processor.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5608
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5609
  Discontinued theories:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5610
    BNF/BNF.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5611
    BNF/Equiv_Relations_More.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5612
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5613
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5614
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5615
* New (co)datatype package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5616
  - Command 'primcorec' is fully implemented.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5617
  - Command 'datatype_new' generates size functions ("size_xxx" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5618
    "size") as required by 'fun'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5619
  - BNFs are integrated with the Lifting tool and new-style
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5620
    (co)datatypes with Transfer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5621
  - Renamed commands:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5622
      datatype_new_compat ~> datatype_compat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5623
      primrec_new ~> primrec
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5624
      wrap_free_constructors ~> free_constructors
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5625
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5626
  - The generated constants "xxx_case" and "xxx_rec" have been renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5627
    "case_xxx" and "rec_xxx" (e.g., "prod_case" ~> "case_prod").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5628
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5629
  - The constant "xxx_(un)fold" and related theorems are no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5630
    generated.  Use "xxx_(co)rec" or define "xxx_(un)fold" manually
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5631
    using "prim(co)rec".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5632
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5633
  - No discriminators are generated for nullary constructors by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5634
    default, eliminating the need for the odd "=:" syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5635
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5636
  - No discriminators or selectors are generated by default by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5637
    "datatype_new", unless custom names are specified or the new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5638
    "discs_sels" option is passed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5639
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5640
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5641
* Old datatype package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5642
  - The generated theorems "xxx.cases" and "xxx.recs" have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5643
    renamed "xxx.case" and "xxx.rec" (e.g., "sum.cases" ->
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5644
    "sum.case").  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5645
  - The generated constants "xxx_case", "xxx_rec", and "xxx_size" have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5646
    been renamed "case_xxx", "rec_xxx", and "size_xxx" (e.g.,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5647
    "prod_case" ~> "case_prod").  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5648
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5649
* The types "'a list" and "'a option", their set and map functions,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5650
  their relators, and their selectors are now produced using the new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5651
  BNF-based datatype package.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5652
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5653
  Renamed constants:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5654
    Option.set ~> set_option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5655
    Option.map ~> map_option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5656
    option_rel ~> rel_option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5657
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5658
  Renamed theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5659
    set_def ~> set_rec[abs_def]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5660
    map_def ~> map_rec[abs_def]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5661
    Option.map_def ~> map_option_case[abs_def] (with "case_option" instead of "rec_option")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5662
    option.recs ~> option.rec
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5663
    list_all2_def ~> list_all2_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5664
    set.simps ~> set_simps (or the slightly different "list.set")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5665
    map.simps ~> list.map
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5666
    hd.simps ~> list.sel(1)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5667
    tl.simps ~> list.sel(2-3)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5668
    the.simps ~> option.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5669
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5670
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5671
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5672
* The following map functions and relators have been renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5673
    sum_map ~> map_sum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5674
    map_pair ~> map_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5675
    prod_rel ~> rel_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5676
    sum_rel ~> rel_sum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5677
    fun_rel ~> rel_fun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5678
    set_rel ~> rel_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5679
    filter_rel ~> rel_filter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5680
    fset_rel ~> rel_fset (in "src/HOL/Library/FSet.thy")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5681
    cset_rel ~> rel_cset (in "src/HOL/Library/Countable_Set_Type.thy")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5682
    vset ~> rel_vset (in "src/HOL/Library/Quotient_Set.thy")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5683
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5684
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5685
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5686
* Lifting and Transfer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5687
  - a type variable as a raw type is supported
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5688
  - stronger reflexivity prover
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5689
  - rep_eq is always generated by lift_definition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5690
  - setup for Lifting/Transfer is now automated for BNFs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5691
    + holds for BNFs that do not contain a dead variable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5692
    + relator_eq, relator_mono, relator_distr, relator_domain,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5693
      relator_eq_onp, quot_map, transfer rules for bi_unique, bi_total,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5694
      right_unique, right_total, left_unique, left_total are proved
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5695
      automatically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5696
    + definition of a predicator is generated automatically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5697
    + simplification rules for a predicator definition are proved
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5698
      automatically for datatypes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5699
  - consolidation of the setup of Lifting/Transfer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5700
    + property that a relator preservers reflexivity is not needed any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5701
      more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5702
      Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5703
    + left_total and left_unique rules are now transfer rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5704
      (reflexivity_rule attribute not needed anymore)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5705
      INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5706
    + Domainp does not have to be a separate assumption in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5707
      relator_domain theorems (=> more natural statement)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5708
      INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5709
  - registration of code equations is more robust
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5710
    Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5711
  - respectfulness proof obligation is preprocessed to a more readable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5712
    form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5713
    Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5714
  - eq_onp is always unfolded in respectfulness proof obligation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5715
    Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5716
  - unregister lifting setup for Code_Numeral.integer and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5717
    Code_Numeral.natural
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5718
    Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5719
  - Lifting.invariant -> eq_onp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5720
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5721
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5722
* New internal SAT solver "cdclite" that produces models and proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5723
traces.  This solver replaces the internal SAT solvers "enumerate" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5724
"dpll".  Applications that explicitly used one of these two SAT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5725
solvers should use "cdclite" instead. In addition, "cdclite" is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5726
the default SAT solver for the "sat" and "satx" proof methods and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5727
corresponding tactics; the old default can be restored using "declare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5728
[[sat_solver = zchaff_with_proofs]]".  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5729
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5730
* SMT module: A new version of the SMT module, temporarily called
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5731
"SMT2", uses SMT-LIB 2 and supports recent versions of Z3 (e.g.,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5732
4.3). The new proof method is called "smt2". CVC3 and CVC4 are also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5733
supported as oracles. Yices is no longer supported, because no version
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5734
of the solver can handle both SMT-LIB 2 and quantifiers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5735
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5736
* Activation of Z3 now works via "z3_non_commercial" system option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5737
(without requiring restart), instead of former settings variable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5738
"Z3_NON_COMMERCIAL".  The option can be edited in Isabelle/jEdit menu
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5739
Plugin Options / Isabelle / General.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5740
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5741
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5742
  - Z3 can now produce Isar proofs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5743
  - MaSh overhaul:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5744
    . New SML-based learning algorithms eliminate the dependency on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5745
      Python and increase performance and reliability.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5746
    . MaSh and MeSh are now used by default together with the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5747
      traditional MePo (Meng-Paulson) relevance filter. To disable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5748
      MaSh, set the "MaSh" system option in Isabelle/jEdit Plugin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5749
      Options / Isabelle / General to "none".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5750
  - New option:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5751
      smt_proofs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5752
  - Renamed options:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5753
      isar_compress ~> compress
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5754
      isar_try0 ~> try0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5755
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5756
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5757
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5758
* Removed solvers remote_cvc3 and remote_z3. Use cvc3 and z3 instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5759
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5760
* Nitpick:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5761
  - Fixed soundness bug whereby mutually recursive datatypes could
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5762
    take infinite values.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5763
  - Fixed soundness bug with low-level number functions such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5764
    "Abs_Integ" and "Rep_Integ".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5765
  - Removed "std" option.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5766
  - Renamed "show_datatypes" to "show_types" and "hide_datatypes" to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5767
    "hide_types".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5768
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5769
* Metis: Removed legacy proof method 'metisFT'. Use 'metis
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5770
(full_types)' instead. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5771
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5772
* Try0: Added 'algebra' and 'meson' to the set of proof methods.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5773
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5774
* Adjustion of INF and SUP operations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5775
  - Elongated constants INFI and SUPR to INFIMUM and SUPREMUM.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5776
  - Consolidated theorem names containing INFI and SUPR: have INF and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5777
    SUP instead uniformly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5778
  - More aggressive normalization of expressions involving INF and Inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5779
    or SUP and Sup.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5780
  - INF_image and SUP_image do not unfold composition.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5781
  - Dropped facts INF_comp, SUP_comp.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5782
  - Default congruence rules strong_INF_cong and strong_SUP_cong, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5783
    simplifier implication in premises.  Generalize and replace former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5784
    INT_cong, SUP_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5785
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5786
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5787
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5788
* SUP and INF generalized to conditionally_complete_lattice.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5789
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5790
* Swapped orientation of facts image_comp and vimage_comp:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5791
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5792
  image_compose ~> image_comp [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5793
  image_comp ~> image_comp [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5794
  vimage_compose ~> vimage_comp [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5795
  vimage_comp ~> vimage_comp [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5796
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5797
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5798
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5799
* Theory reorganization: split of Big_Operators.thy into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5800
Groups_Big.thy and Lattices_Big.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5801
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5802
* Consolidated some facts about big group operators:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5803
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5804
    setsum_0' ~> setsum.neutral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5805
    setsum_0 ~> setsum.neutral_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5806
    setsum_addf ~> setsum.distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5807
    setsum_cartesian_product ~> setsum.cartesian_product
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5808
    setsum_cases ~> setsum.If_cases
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5809
    setsum_commute ~> setsum.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5810
    setsum_cong ~> setsum.cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5811
    setsum_delta ~> setsum.delta
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5812
    setsum_delta' ~> setsum.delta'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5813
    setsum_diff1' ~> setsum.remove
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5814
    setsum_empty ~> setsum.empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5815
    setsum_infinite ~> setsum.infinite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5816
    setsum_insert ~> setsum.insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5817
    setsum_inter_restrict'' ~> setsum.inter_filter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5818
    setsum_mono_zero_cong_left ~> setsum.mono_neutral_cong_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5819
    setsum_mono_zero_cong_right ~> setsum.mono_neutral_cong_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5820
    setsum_mono_zero_left ~> setsum.mono_neutral_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5821
    setsum_mono_zero_right ~> setsum.mono_neutral_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5822
    setsum_reindex ~> setsum.reindex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5823
    setsum_reindex_cong ~> setsum.reindex_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5824
    setsum_reindex_nonzero ~> setsum.reindex_nontrivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5825
    setsum_restrict_set ~> setsum.inter_restrict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5826
    setsum_Plus ~> setsum.Plus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5827
    setsum_setsum_restrict ~> setsum.commute_restrict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5828
    setsum_Sigma ~> setsum.Sigma
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5829
    setsum_subset_diff ~> setsum.subset_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5830
    setsum_Un_disjoint ~> setsum.union_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5831
    setsum_UN_disjoint ~> setsum.UNION_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5832
    setsum_Un_Int ~> setsum.union_inter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5833
    setsum_Union_disjoint ~> setsum.Union_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5834
    setsum_UNION_zero ~> setsum.Union_comp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5835
    setsum_Un_zero ~> setsum.union_inter_neutral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5836
    strong_setprod_cong ~> setprod.strong_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5837
    strong_setsum_cong ~> setsum.strong_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5838
    setprod_1' ~> setprod.neutral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5839
    setprod_1 ~> setprod.neutral_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5840
    setprod_cartesian_product ~> setprod.cartesian_product
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5841
    setprod_cong ~> setprod.cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5842
    setprod_delta ~> setprod.delta
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5843
    setprod_delta' ~> setprod.delta'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5844
    setprod_empty ~> setprod.empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5845
    setprod_infinite ~> setprod.infinite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5846
    setprod_insert ~> setprod.insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5847
    setprod_mono_one_cong_left ~> setprod.mono_neutral_cong_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5848
    setprod_mono_one_cong_right ~> setprod.mono_neutral_cong_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5849
    setprod_mono_one_left ~> setprod.mono_neutral_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5850
    setprod_mono_one_right ~> setprod.mono_neutral_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5851
    setprod_reindex ~> setprod.reindex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5852
    setprod_reindex_cong ~> setprod.reindex_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5853
    setprod_reindex_nonzero ~> setprod.reindex_nontrivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5854
    setprod_Sigma ~> setprod.Sigma
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5855
    setprod_subset_diff ~> setprod.subset_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5856
    setprod_timesf ~> setprod.distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5857
    setprod_Un2 ~> setprod.union_diff2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5858
    setprod_Un_disjoint ~> setprod.union_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5859
    setprod_UN_disjoint ~> setprod.UNION_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5860
    setprod_Un_Int ~> setprod.union_inter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5861
    setprod_Union_disjoint ~> setprod.Union_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5862
    setprod_Un_one ~> setprod.union_inter_neutral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5863
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5864
  Dropped setsum_cong2 (simple variant of setsum.cong).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5865
  Dropped setsum_inter_restrict' (simple variant of setsum.inter_restrict)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5866
  Dropped setsum_reindex_id, setprod_reindex_id
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5867
    (simple variants of setsum.reindex [symmetric], setprod.reindex [symmetric]).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5868
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5869
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5870
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5871
* Abolished slightly odd global lattice interpretation for min/max.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5872
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5873
  Fact consolidations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5874
    min_max.inf_assoc ~> min.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5875
    min_max.inf_commute ~> min.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5876
    min_max.inf_left_commute ~> min.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5877
    min_max.inf_idem ~> min.idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5878
    min_max.inf_left_idem ~> min.left_idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5879
    min_max.inf_right_idem ~> min.right_idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5880
    min_max.sup_assoc ~> max.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5881
    min_max.sup_commute ~> max.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5882
    min_max.sup_left_commute ~> max.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5883
    min_max.sup_idem ~> max.idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5884
    min_max.sup_left_idem ~> max.left_idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5885
    min_max.sup_inf_distrib1 ~> max_min_distrib2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5886
    min_max.sup_inf_distrib2 ~> max_min_distrib1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5887
    min_max.inf_sup_distrib1 ~> min_max_distrib2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5888
    min_max.inf_sup_distrib2 ~> min_max_distrib1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5889
    min_max.distrib ~> min_max_distribs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5890
    min_max.inf_absorb1 ~> min.absorb1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5891
    min_max.inf_absorb2 ~> min.absorb2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5892
    min_max.sup_absorb1 ~> max.absorb1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5893
    min_max.sup_absorb2 ~> max.absorb2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5894
    min_max.le_iff_inf ~> min.absorb_iff1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5895
    min_max.le_iff_sup ~> max.absorb_iff2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5896
    min_max.inf_le1 ~> min.cobounded1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5897
    min_max.inf_le2 ~> min.cobounded2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5898
    le_maxI1, min_max.sup_ge1 ~> max.cobounded1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5899
    le_maxI2, min_max.sup_ge2 ~> max.cobounded2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5900
    min_max.le_infI1 ~> min.coboundedI1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5901
    min_max.le_infI2 ~> min.coboundedI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5902
    min_max.le_supI1 ~> max.coboundedI1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5903
    min_max.le_supI2 ~> max.coboundedI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5904
    min_max.less_infI1 ~> min.strict_coboundedI1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5905
    min_max.less_infI2 ~> min.strict_coboundedI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5906
    min_max.less_supI1 ~> max.strict_coboundedI1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5907
    min_max.less_supI2 ~> max.strict_coboundedI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5908
    min_max.inf_mono ~> min.mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5909
    min_max.sup_mono ~> max.mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5910
    min_max.le_infI, min_max.inf_greatest ~> min.boundedI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5911
    min_max.le_supI, min_max.sup_least ~> max.boundedI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5912
    min_max.le_inf_iff ~> min.bounded_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5913
    min_max.le_sup_iff ~> max.bounded_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5914
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5915
For min_max.inf_sup_aci, prefer (one of) min.commute, min.assoc,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5916
min.left_commute, min.left_idem, max.commute, max.assoc,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5917
max.left_commute, max.left_idem directly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5918
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5919
For min_max.inf_sup_ord, prefer (one of) min.cobounded1,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5920
min.cobounded2, max.cobounded1m max.cobounded2 directly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5921
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5922
For min_ac or max_ac, prefer more general collection ac_simps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5924
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5925
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5926
* Theorem disambiguation Inf_le_Sup (on finite sets) ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5927
Inf_fin_le_Sup_fin.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5928
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5929
* Qualified constant names Wellfounded.acc, Wellfounded.accp.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5930
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5931
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5932
* Fact generalization and consolidation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5933
    neq_one_mod_two, mod_2_not_eq_zero_eq_one_int ~> not_mod_2_eq_0_eq_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5934
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5935
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5936
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5937
* Purely algebraic definition of even.  Fact generalization and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5938
  consolidation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5939
    nat_even_iff_2_dvd, int_even_iff_2_dvd ~> even_iff_2_dvd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5940
    even_zero_(nat|int) ~> even_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5941
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5942
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5943
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5944
* Abolished neg_numeral.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5945
  - Canonical representation for minus one is "- 1".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5946
  - Canonical representation for other negative numbers is "- (numeral _)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5947
  - When devising rule sets for number calculation, consider the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5948
    following canonical cases: 0, 1, numeral _, - 1, - numeral _.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5949
  - HOLogic.dest_number also recognizes numerals in non-canonical forms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5950
    like "numeral One", "- numeral One", "- 0" and even "- ... - _".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5951
  - Syntax for negative numerals is mere input syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5952
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5953
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5954
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5955
* Reduced name variants for rules on associativity and commutativity:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5956
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5957
    add_assoc ~> add.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5958
    add_commute ~> add.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5959
    add_left_commute ~> add.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5960
    mult_assoc ~> mult.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5961
    mult_commute ~> mult.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5962
    mult_left_commute ~> mult.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5963
    nat_add_assoc ~> add.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5964
    nat_add_commute ~> add.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5965
    nat_add_left_commute ~> add.left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5966
    nat_mult_assoc ~> mult.assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5967
    nat_mult_commute ~> mult.commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5968
    eq_assoc ~> iff_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5969
    eq_left_commute ~> iff_left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5970
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5971
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5972
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5973
* Fact collections add_ac and mult_ac are considered old-fashioned.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5974
Prefer ac_simps instead, or specify rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5975
(add|mult).(assoc|commute|left_commute) individually.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5976
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5977
* Elimination of fact duplicates:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5978
    equals_zero_I ~> minus_unique
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5979
    diff_eq_0_iff_eq ~> right_minus_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5980
    nat_infinite ~> infinite_UNIV_nat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5981
    int_infinite ~> infinite_UNIV_int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5982
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5983
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5984
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5985
* Fact name consolidation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5986
    diff_def, diff_minus, ab_diff_minus ~> diff_conv_add_uminus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5987
    minus_le_self_iff ~> neg_less_eq_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5988
    le_minus_self_iff ~> less_eq_neg_nonpos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5989
    neg_less_nonneg ~> neg_less_pos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5990
    less_minus_self_iff ~> less_neg_neg [simp]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5991
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5992
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5993
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5994
* More simplification rules on unary and binary minus:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5995
add_diff_cancel, add_diff_cancel_left, add_le_same_cancel1,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5996
add_le_same_cancel2, add_less_same_cancel1, add_less_same_cancel2,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5997
add_minus_cancel, diff_add_cancel, le_add_same_cancel1,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5998
le_add_same_cancel2, less_add_same_cancel1, less_add_same_cancel2,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  5999
minus_add_cancel, uminus_add_conv_diff.  These correspondingly have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6000
been taken away from fact collections algebra_simps and field_simps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6001
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6002
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6003
To restore proofs, the following patterns are helpful:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6004
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6005
a) Arbitrary failing proof not involving "diff_def":
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6006
Consider simplification with algebra_simps or field_simps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6007
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6008
b) Lifting rules from addition to subtraction:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6009
Try with "using <rule for addition> of [... "- _" ...]" by simp".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6010
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6011
c) Simplification with "diff_def": just drop "diff_def".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6012
Consider simplification with algebra_simps or field_simps;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6013
or the brute way with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6014
"simp add: diff_conv_add_uminus del: add_uminus_conv_diff".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6015
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6016
* Introduce bdd_above and bdd_below in theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6017
Conditionally_Complete_Lattices, use them instead of explicitly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6018
stating boundedness of sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6019
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6020
* ccpo.admissible quantifies only over non-empty chains to allow more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6021
syntax-directed proof rules; the case of the empty chain shows up as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6022
additional case in fixpoint induction proofs.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6023
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6024
* Removed and renamed theorems in Series:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6025
  summable_le         ~>  suminf_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6026
  suminf_le           ~>  suminf_le_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6027
  series_pos_le       ~>  setsum_le_suminf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6028
  series_pos_less     ~>  setsum_less_suminf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6029
  suminf_ge_zero      ~>  suminf_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6030
  suminf_gt_zero      ~>  suminf_pos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6031
  suminf_gt_zero_iff  ~>  suminf_pos_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6032
  summable_sumr_LIMSEQ_suminf  ~>  summable_LIMSEQ
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6033
  suminf_0_le         ~>  suminf_nonneg [rotate]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6034
  pos_summable        ~>  summableI_nonneg_bounded
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6035
  ratio_test          ~>  summable_ratio_test
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6036
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6037
  removed series_zero, replaced by sums_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6038
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6039
  removed auxiliary lemmas:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6040
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6041
    sumr_offset, sumr_offset2, sumr_offset3, sumr_offset4, sumr_group,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6042
    half, le_Suc_ex_iff, lemma_realpow_diff_sumr,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6043
    real_setsum_nat_ivl_bounded, summable_le2, ratio_test_lemma2,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6044
    sumr_minus_one_realpow_zerom, sumr_one_lb_realpow_zero,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6045
    summable_convergent_sumr_iff, sumr_diff_mult_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6046
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6047
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6049
* Replace (F)DERIV syntax by has_derivative:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6050
  - "(f has_derivative f') (at x within s)" replaces "FDERIV f x : s : f'"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6051
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6052
  - "(f has_field_derivative f') (at x within s)" replaces "DERIV f x : s : f'"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6053
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6054
  - "f differentiable at x within s" replaces "_ differentiable _ in _" syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6055
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6056
  - removed constant isDiff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6057
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6058
  - "DERIV f x : f'" and "FDERIV f x : f'" syntax is only available as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6059
    input syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6060
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6061
  - "DERIV f x : s : f'" and "FDERIV f x : s : f'" syntax removed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6062
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6063
  - Renamed FDERIV_... lemmas to has_derivative_...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6064
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6065
  - renamed deriv (the syntax constant used for "DERIV _ _ :> _") to DERIV
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6066
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6067
  - removed DERIV_intros, has_derivative_eq_intros
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6068
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6069
  - introduced derivative_intros and deriative_eq_intros which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6070
    includes now rules for DERIV, has_derivative and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6071
    has_vector_derivative.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6072
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6073
  - Other renamings:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6074
    differentiable_def        ~>  real_differentiable_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6075
    differentiableE           ~>  real_differentiableE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6076
    fderiv_def                ~>  has_derivative_at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6077
    field_fderiv_def          ~>  field_has_derivative_at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6078
    isDiff_der                ~>  differentiable_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6079
    deriv_fderiv              ~>  has_field_derivative_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6080
    deriv_def                 ~>  DERIV_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6081
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6082
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6083
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6084
* Include more theorems in continuous_intros. Remove the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6085
continuous_on_intros, isCont_intros collections, these facts are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6086
in continuous_intros.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6088
* Theorems about complex numbers are now stated only using Re and Im,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6089
the Complex constructor is not used anymore. It is possible to use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6090
primcorec to defined the behaviour of a complex-valued function.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6091
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6092
Removed theorems about the Complex constructor from the simpset, they
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6093
are available as the lemma collection legacy_Complex_simps. This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6094
especially removes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6095
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6096
    i_complex_of_real: "ii * complex_of_real r = Complex 0 r".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6097
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6098
Instead the reverse direction is supported with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6099
    Complex_eq: "Complex a b = a + \<i> * b"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6100
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6101
Moved csqrt from Fundamental_Algebra_Theorem to Complex.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6102
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6103
  Renamings:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6104
    Re/Im                  ~>  complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6105
    complex_Re/Im_zero     ~>  zero_complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6106
    complex_Re/Im_add      ~>  plus_complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6107
    complex_Re/Im_minus    ~>  uminus_complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6108
    complex_Re/Im_diff     ~>  minus_complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6109
    complex_Re/Im_one      ~>  one_complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6110
    complex_Re/Im_mult     ~>  times_complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6111
    complex_Re/Im_inverse  ~>  inverse_complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6112
    complex_Re/Im_scaleR   ~>  scaleR_complex.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6113
    complex_Re/Im_i        ~>  ii.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6114
    complex_Re/Im_cnj      ~>  cnj.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6115
    Re/Im_cis              ~>  cis.sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6116
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6117
    complex_divide_def   ~>  divide_complex_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6118
    complex_norm_def     ~>  norm_complex_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6119
    cmod_def             ~>  norm_complex_de
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6120
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6121
  Removed theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6122
    complex_zero_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6123
    complex_add_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6124
    complex_minus_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6125
    complex_diff_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6126
    complex_one_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6127
    complex_mult_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6128
    complex_inverse_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6129
    complex_scaleR_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6130
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6131
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6132
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6133
* Theory Lubs moved HOL image to HOL-Library. It is replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6134
Conditionally_Complete_Lattices.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6135
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6136
* HOL-Library: new theory src/HOL/Library/Tree.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6137
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6138
* HOL-Library: removed theory src/HOL/Library/Kleene_Algebra.thy; it
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6139
is subsumed by session Kleene_Algebra in AFP.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6140
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6141
* HOL-Library / theory RBT: various constants and facts are hidden;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6142
lifting setup is unregistered.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6143
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6144
* HOL-Cardinals: new theory src/HOL/Cardinals/Ordinal_Arithmetic.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6145
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6146
* HOL-Word: bit representations prefer type bool over type bit.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6147
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6148
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6149
* HOL-Word:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6150
  - Abandoned fact collection "word_arith_alts", which is a duplicate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6151
    of "word_arith_wis".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6152
  - Dropped first (duplicated) element in fact collections
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6153
    "sint_word_ariths", "word_arith_alts", "uint_word_ariths",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6154
    "uint_word_arith_bintrs".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6155
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6156
* HOL-Number_Theory:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6157
  - consolidated the proofs of the binomial theorem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6158
  - the function fib is again of type nat => nat and not overloaded
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6159
  - no more references to Old_Number_Theory in the HOL libraries
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6160
    (except the AFP)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6161
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6162
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6163
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6164
* HOL-Multivariate_Analysis:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6165
  - Type class ordered_real_vector for ordered vector spaces.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6166
  - New theory Complex_Basic_Analysis defining complex derivatives,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6167
    holomorphic functions, etc., ported from HOL Light's canal.ml.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6168
  - Changed order of ordered_euclidean_space to be compatible with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6169
    pointwise ordering on products. Therefore instance of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6170
    conditionally_complete_lattice and ordered_real_vector.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6171
    INCOMPATIBILITY: use box instead of greaterThanLessThan or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6172
    explicit set-comprehensions with eucl_less for other (half-)open
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6173
    intervals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6174
  - removed dependencies on type class ordered_euclidean_space with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6175
    introduction of "cbox" on euclidean_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6176
    - renamed theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6177
        interval ~> box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6178
        mem_interval ~> mem_box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6179
        interval_eq_empty ~> box_eq_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6180
        interval_ne_empty ~> box_ne_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6181
        interval_sing(1) ~> cbox_sing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6182
        interval_sing(2) ~> box_sing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6183
        subset_interval_imp ~> subset_box_imp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6184
        subset_interval ~> subset_box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6185
        open_interval ~> open_box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6186
        closed_interval ~> closed_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6187
        interior_closed_interval ~> interior_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6188
        bounded_closed_interval ~> bounded_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6189
        compact_interval ~> compact_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6190
        bounded_subset_closed_interval_symmetric ~> bounded_subset_cbox_symmetric
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6191
        bounded_subset_closed_interval ~> bounded_subset_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6192
        mem_interval_componentwiseI ~> mem_box_componentwiseI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6193
        convex_box ~> convex_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6194
        rel_interior_real_interval ~> rel_interior_real_box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6195
        convex_interval ~> convex_box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6196
        convex_hull_eq_real_interval ~> convex_hull_eq_real_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6197
        frechet_derivative_within_closed_interval ~> frechet_derivative_within_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6198
        content_closed_interval' ~> content_cbox'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6199
        elementary_subset_interval ~> elementary_subset_box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6200
        diameter_closed_interval ~> diameter_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6201
        frontier_closed_interval ~> frontier_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6202
        frontier_open_interval ~> frontier_box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6203
        bounded_subset_open_interval_symmetric ~> bounded_subset_box_symmetric
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6204
        closure_open_interval ~> closure_box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6205
        open_closed_interval_convex ~> open_cbox_convex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6206
        open_interval_midpoint ~> box_midpoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6207
        content_image_affinity_interval ~> content_image_affinity_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6208
        is_interval_interval ~> is_interval_cbox + is_interval_box + is_interval_closed_interval
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6209
        bounded_interval ~> bounded_closed_interval + bounded_boxes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6210
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6211
    - respective theorems for intervals over the reals:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6212
        content_closed_interval + content_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6213
        has_integral + has_integral_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6214
        fine_division_exists + fine_division_exists_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6215
        has_integral_null + has_integral_null_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6216
        tagged_division_union_interval + tagged_division_union_interval_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6217
        has_integral_const + has_integral_const_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6218
        integral_const + integral_const_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6219
        has_integral_bound + has_integral_bound_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6220
        integrable_continuous + integrable_continuous_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6221
        integrable_subinterval + integrable_subinterval_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6222
        has_integral_reflect_lemma + has_integral_reflect_lemma_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6223
        integrable_reflect + integrable_reflect_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6224
        integral_reflect + integral_reflect_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6225
        image_affinity_interval + image_affinity_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6226
        image_smult_interval + image_smult_cbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6227
        integrable_const + integrable_const_ivl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6228
        integrable_on_subinterval + integrable_on_subcbox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6229
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6230
  - renamed theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6231
    derivative_linear         ~>  has_derivative_bounded_linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6232
    derivative_is_linear      ~>  has_derivative_linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6233
    bounded_linear_imp_linear ~>  bounded_linear.linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6234
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6235
* HOL-Probability:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6236
  - Renamed positive_integral to nn_integral:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6237
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6238
    . Renamed all lemmas "*positive_integral*" to *nn_integral*"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6239
      positive_integral_positive ~> nn_integral_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6240
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6241
    . Renamed abbreviation integral\<^sup>P to integral\<^sup>N.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6242
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6243
  - replaced the Lebesgue integral on real numbers by the more general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6244
    Bochner integral for functions into a real-normed vector space.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6245
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6246
    integral_zero               ~>  integral_zero / integrable_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6247
    integral_minus              ~>  integral_minus / integrable_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6248
    integral_add                ~>  integral_add / integrable_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6249
    integral_diff               ~>  integral_diff / integrable_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6250
    integral_setsum             ~>  integral_setsum / integrable_setsum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6251
    integral_multc              ~>  integral_mult_left / integrable_mult_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6252
    integral_cmult              ~>  integral_mult_right / integrable_mult_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6253
    integral_triangle_inequality~>  integral_norm_bound
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6254
    integrable_nonneg           ~>  integrableI_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6255
    integral_positive           ~>  integral_nonneg_AE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6256
    integrable_abs_iff          ~>  integrable_abs_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6257
    positive_integral_lim_INF   ~>  nn_integral_liminf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6258
    lebesgue_real_affine        ~>  lborel_real_affine
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6259
    borel_integral_has_integral ~>  has_integral_lebesgue_integral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6260
    integral_indicator          ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6261
         integral_real_indicator / integrable_real_indicator
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6262
    positive_integral_fst       ~>  nn_integral_fst'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6263
    positive_integral_fst_measurable ~> nn_integral_fst
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6264
    positive_integral_snd_measurable ~> nn_integral_snd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6265
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6266
    integrable_fst_measurable   ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6267
         integral_fst / integrable_fst / AE_integrable_fst
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6268
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6269
    integrable_snd_measurable   ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6270
         integral_snd / integrable_snd / AE_integrable_snd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6271
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6272
    integral_monotone_convergence  ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6273
         integral_monotone_convergence / integrable_monotone_convergence
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6274
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6275
    integral_monotone_convergence_at_top  ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6276
         integral_monotone_convergence_at_top /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6277
         integrable_monotone_convergence_at_top
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6278
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6279
    has_integral_iff_positive_integral_lebesgue  ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6280
         has_integral_iff_has_bochner_integral_lebesgue_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6281
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6282
    lebesgue_integral_has_integral  ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6283
         has_integral_integrable_lebesgue_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6284
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6285
    positive_integral_lebesgue_has_integral  ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6286
         integral_has_integral_lebesgue_nonneg /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6287
         integrable_has_integral_lebesgue_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6288
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6289
    lebesgue_integral_real_affine  ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6290
         nn_integral_real_affine
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6291
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6292
    has_integral_iff_positive_integral_lborel  ~>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6293
         integral_has_integral_nonneg / integrable_has_integral_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6294
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6295
    The following theorems where removed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6296
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6297
    lebesgue_integral_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6298
    lebesgue_integral_uminus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6299
    lebesgue_integral_cmult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6300
    lebesgue_integral_multc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6301
    lebesgue_integral_cmult_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6302
    integral_cmul_indicator
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6303
    integral_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6304
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6305
  - Formalized properties about exponentially, Erlang, and normal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6306
    distributed random variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6308
* HOL-Decision_Procs: Separate command 'approximate' for approximative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6309
computation in src/HOL/Decision_Procs/Approximation.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6310
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6311
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6312
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6313
*** Scala ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6314
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6315
* The signature and semantics of Document.Snapshot.cumulate_markup /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6316
select_markup have been clarified.  Markup is now traversed in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6317
order of reports given by the prover: later markup is usually more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6318
specific and may override results accumulated so far.  The elements
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6319
guard is mandatory and checked precisely.  Subtle INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6320
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6321
* Substantial reworking of internal PIDE protocol communication
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6322
channels.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6323
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6324
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6325
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6326
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6327
* Subtle change of semantics of Thm.eq_thm: theory stamps are not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6328
compared (according to Thm.thm_ord), but assumed to be covered by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6329
current background theory.  Thus equivalent data produced in different
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6330
branches of the theory graph usually coincides (e.g. relevant for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6331
theory merge).  Note that the softer Thm.eq_thm_prop is often more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6332
appropriate than Thm.eq_thm.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6333
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6334
* Proper context for basic Simplifier operations: rewrite_rule,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6335
rewrite_goals_rule, rewrite_goals_tac etc. INCOMPATIBILITY, need to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6336
pass runtime Proof.context (and ensure that the simplified entity
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6337
actually belongs to it).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6338
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6339
* Proper context discipline for read_instantiate and instantiate_tac:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6340
variables that are meant to become schematic need to be given as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6341
fixed, and are generalized by the explicit context of local variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6342
This corresponds to Isar attributes "where" and "of" with 'for'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6343
declaration.  INCOMPATIBILITY, also due to potential change of indices
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6344
of schematic variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6345
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6346
* Moved ML_Compiler.exn_trace and other operations on exceptions to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6347
structure Runtime.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6348
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6349
* Discontinued old Toplevel.debug in favour of system option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6350
"ML_exception_trace", which may be also declared within the context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6351
via "declare [[ML_exception_trace = true]]".  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6352
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6353
* Renamed configuration option "ML_trace" to "ML_source_trace". Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6354
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6355
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6356
* Configuration option "ML_print_depth" controls the pretty-printing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6357
depth of the ML compiler within the context.  The old print_depth in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6358
ML is still available as default_print_depth, but rarely used.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6359
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6360
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6361
* Toplevel function "use" refers to raw ML bootstrap environment,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6362
without Isar context nor antiquotations.  Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6363
Note that 'ML_file' is the canonical command to load ML files into the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6364
formal context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6365
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6366
* Simplified programming interface to define ML antiquotations, see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6367
structure ML_Antiquotation.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6368
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6369
* ML antiquotation @{here} refers to its source position, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6370
occasionally useful for experimentation and diagnostic purposes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6371
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6372
* ML antiquotation @{path} produces a Path.T value, similarly to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6373
Path.explode, but with compile-time check against the file-system and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6374
some PIDE markup.  Note that unlike theory source, ML does not have a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6375
well-defined master directory, so an absolute symbolic path
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6376
specification is usually required, e.g. "~~/src/HOL".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6377
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6378
* ML antiquotation @{print} inlines a function to print an arbitrary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6379
ML value, which is occasionally useful for diagnostic or demonstration
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6380
purposes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6381
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6382
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6383
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6384
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6385
* Proof General with its traditional helper scripts is now an optional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6386
Isabelle component, e.g. see ProofGeneral-4.2-2 from the Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6387
component repository http://isabelle.in.tum.de/components/.  Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6388
the "system" manual provides general explanations about add-on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6389
components, especially those that are not bundled with the release.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6390
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6391
* The raw Isabelle process executable has been renamed from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6392
"isabelle-process" to "isabelle_process", which conforms to common
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6393
shell naming conventions, and allows to define a shell function within
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6394
the Isabelle environment to avoid dynamic path lookup.  Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6395
incompatibility for old tools that do not use the ISABELLE_PROCESS
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6396
settings variable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6397
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6398
* Former "isabelle tty" has been superseded by "isabelle console",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6399
with implicit build like "isabelle jedit", and without the mostly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6400
obsolete Isar TTY loop.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6401
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6402
* Simplified "isabelle display" tool.  Settings variables DVI_VIEWER
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6403
and PDF_VIEWER now refer to the actual programs, not shell
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6404
command-lines.  Discontinued option -c: invocation may be asynchronous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6405
via desktop environment, without any special precautions.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6406
INCOMPATIBILITY with ambitious private settings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6407
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6408
* Removed obsolete "isabelle unsymbolize".  Note that the usual format
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6409
for email communication is the Unicode rendering of Isabelle symbols,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6410
as produced by Isabelle/jEdit, for example.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6411
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6412
* Removed obsolete tool "wwwfind". Similar functionality may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6413
integrated into Isabelle/jEdit eventually.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6414
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6415
* Improved 'display_drafts' concerning desktop integration and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6416
repeated invocation in PIDE front-end: re-use single file
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6417
$ISABELLE_HOME_USER/tmp/drafts.pdf and corresponding views.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6418
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6419
* Session ROOT specifications require explicit 'document_files' for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6420
robust dependencies on LaTeX sources.  Only these explicitly given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6421
files are copied to the document output directory, before document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6422
processing is started.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6423
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6424
* Windows: support for regular TeX installation (e.g. MiKTeX) instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6425
of TeX Live from Cygwin.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6426
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6427
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6428
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6429
New in Isabelle2013-2 (December 2013)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6430
-------------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6431
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6432
*** Prover IDE -- Isabelle/Scala/jEdit ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6433
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6434
* More robust editing of running commands with internal forks,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6435
e.g. non-terminating 'by' steps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6436
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6437
* More relaxed Sledgehammer panel: avoid repeated application of query
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6438
after edits surrounding the command location.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6439
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6440
* More status information about commands that are interrupted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6441
accidentally (via physical event or Poly/ML runtime system signal,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6442
e.g. out-of-memory).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6444
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6445
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6446
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6447
* More robust termination of external processes managed by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6448
Isabelle/ML: support cancellation of tasks within the range of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6449
milliseconds, as required for PIDE document editing with automatically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6450
tried tools (e.g. Sledgehammer).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6451
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6452
* Reactivated Isabelle/Scala kill command for external processes on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6453
Mac OS X, which was accidentally broken in Isabelle2013-1 due to a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6454
workaround for some Debian/Ubuntu Linux versions from 2013.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6455
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6456
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6457
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6458
New in Isabelle2013-1 (November 2013)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6459
-------------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6460
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6461
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6462
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6463
* Discontinued obsolete 'uses' within theory header.  Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6464
commands like 'ML_file' work without separate declaration of file
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6465
dependencies.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6466
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6467
* Discontinued redundant 'use' command, which was superseded by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6468
'ML_file' in Isabelle2013.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6469
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6470
* Simplified subscripts within identifiers, using plain \<^sub>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6471
instead of the second copy \<^isub> and \<^isup>.  Superscripts are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6472
only for literal tokens within notation; explicit mixfix annotations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6473
for consts or fixed variables may be used as fall-back for unusual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6474
names.  Obsolete \<twosuperior> has been expanded to \<^sup>2 in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6475
Isabelle/HOL.  INCOMPATIBILITY, use "isabelle update_sub_sup" to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6476
standardize symbols as a starting point for further manual cleanup.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6477
The ML reference variable "legacy_isub_isup" may be set as temporary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6478
workaround, to make the prover accept a subset of the old identifier
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6479
syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6480
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6481
* Document antiquotations: term style "isub" has been renamed to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6482
"sub".  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6483
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6484
* Uniform management of "quick_and_dirty" as system option (see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6485
"isabelle options"), configuration option within the context (see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6486
Config.get in Isabelle/ML), and attribute in Isabelle/Isar.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6487
INCOMPATIBILITY, need to use more official Isabelle means to access
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6488
quick_and_dirty, instead of historical poking into mutable reference.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6489
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6490
* Renamed command 'print_configs' to 'print_options'.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6491
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6492
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6493
* Proper diagnostic command 'print_state'.  Old 'pr' (with its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6494
implicit change of some global references) is retained for now as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6495
control command, e.g. for ProofGeneral 3.7.x.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6496
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6497
* Discontinued 'print_drafts' command with its old-fashioned PS output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6498
and Unix command-line print spooling.  Minor INCOMPATIBILITY: use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6499
'display_drafts' instead and print via the regular document viewer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6500
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6501
* Updated and extended "isar-ref" and "implementation" manual,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6502
eliminated old "ref" manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6503
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6504
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6505
*** Prover IDE -- Isabelle/Scala/jEdit ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6506
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6507
* New manual "jedit" for Isabelle/jEdit, see isabelle doc or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6508
Documentation panel.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6509
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6510
* Dockable window "Documentation" provides access to Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6511
documentation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6512
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6513
* Dockable window "Find" provides query operations for formal entities
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6514
(GUI front-end to 'find_theorems' command).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6515
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6516
* Dockable window "Sledgehammer" manages asynchronous / parallel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6517
sledgehammer runs over existing document sources, independently of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6518
normal editing and checking process.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6519
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6520
* Dockable window "Timing" provides an overview of relevant command
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6521
timing information, depending on option jedit_timing_threshold.  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6522
same timing information is shown in the extended tooltip of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6523
command keyword, when hovering the mouse over it while the CONTROL or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6524
COMMAND modifier is pressed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6525
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6526
* Improved dockable window "Theories": Continuous checking of proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6527
document (visible and required parts) may be controlled explicitly,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6528
using check box or shortcut "C+e ENTER".  Individual theory nodes may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6529
be marked explicitly as required and checked in full, using check box
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6530
or shortcut "C+e SPACE".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6531
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6532
* Improved completion mechanism, which is now managed by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6533
Isabelle/jEdit plugin instead of SideKick.  Refined table of Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6534
symbol abbreviations (see $ISABELLE_HOME/etc/symbols).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6535
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6536
* Standard jEdit keyboard shortcut C+b complete-word is remapped to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6537
isabelle.complete for explicit completion in Isabelle sources.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6538
INCOMPATIBILITY wrt. jEdit defaults, may have to invent new shortcuts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6539
to resolve conflict.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6540
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6541
* Improved support of various "minor modes" for Isabelle NEWS,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6542
options, session ROOT etc., with completion and SideKick tree view.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6543
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6544
* Strictly monotonic document update, without premature cancellation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6545
running transactions that are still needed: avoid reset/restart of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6546
such command executions while editing.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6547
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6548
* Support for asynchronous print functions, as overlay to existing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6549
document content.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6550
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6551
* Support for automatic tools in HOL, which try to prove or disprove
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6552
toplevel theorem statements.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6553
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6554
* Action isabelle.reset-font-size resets main text area font size
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6555
according to Isabelle/Scala plugin option "jedit_font_reset_size" (see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6556
also "Plugin Options / Isabelle / General").  It can be bound to some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6557
keyboard shortcut by the user (e.g. C+0 and/or C+NUMPAD0).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6558
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6559
* File specifications in jEdit (e.g. file browser) may refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6560
$ISABELLE_HOME and $ISABELLE_HOME_USER on all platforms.  Discontinued
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6561
obsolete $ISABELLE_HOME_WINDOWS variable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6562
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6563
* Improved support for Linux look-and-feel "GTK+", see also "Utilities
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6564
/ Global Options / Appearance".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6565
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6566
* Improved support of native Mac OS X functionality via "MacOSX"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6567
plugin, which is now enabled by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6568
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6569
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6570
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6571
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6572
* Commands 'interpretation' and 'sublocale' are now target-sensitive.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6573
In particular, 'interpretation' allows for non-persistent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6574
interpretation within "context ... begin ... end" blocks offering a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6575
light-weight alternative to 'sublocale'.  See "isar-ref" manual for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6576
details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6577
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6578
* Improved locales diagnostic command 'print_dependencies'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6579
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6580
* Discontinued obsolete 'axioms' command, which has been marked as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6581
legacy since Isabelle2009-2.  INCOMPATIBILITY, use 'axiomatization'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6582
instead, while observing its uniform scope for polymorphism.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6583
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6584
* Discontinued empty name bindings in 'axiomatization'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6585
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6586
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6587
* System option "proofs" has been discontinued.  Instead the global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6588
state of Proofterm.proofs is persistently compiled into logic images
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6589
as required, notably HOL-Proofs.  Users no longer need to change
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6590
Proofterm.proofs dynamically.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6591
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6592
* Syntax translation functions (print_translation etc.) always depend
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6593
on Proof.context.  Discontinued former "(advanced)" option -- this is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6594
now the default.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6595
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6596
* Former global reference trace_unify_fail is now available as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6597
configuration option "unify_trace_failure" (global context only).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6598
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6599
* SELECT_GOAL now retains the syntactic context of the overall goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6600
state (schematic variables etc.).  Potential INCOMPATIBILITY in rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6601
situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6602
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6603
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6604
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6605
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6606
* Stronger precedence of syntax for big intersection and union on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6607
sets, in accordance with corresponding lattice operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6608
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6609
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6610
* Notation "{p:A. P}" now allows tuple patterns as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6611
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6612
* Nested case expressions are now translated in a separate check phase
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6613
rather than during parsing. The data for case combinators is separated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6614
from the datatype package. The declaration attribute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6615
"case_translation" can be used to register new case combinators:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6616
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6617
  declare [[case_translation case_combinator constructor1 ... constructorN]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6618
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6619
* Code generator:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6620
  - 'code_printing' unifies 'code_const' / 'code_type' / 'code_class' /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6621
    'code_instance'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6622
  - 'code_identifier' declares name hints for arbitrary identifiers in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6623
    generated code, subsuming 'code_modulename'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6624
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6625
See the isar-ref manual for syntax diagrams, and the HOL theories for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6626
examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6627
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6628
* Attibute 'code': 'code' now declares concrete and abstract code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6629
equations uniformly.  Use explicit 'code equation' and 'code abstract'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6630
to distinguish both when desired.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6631
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6632
* Discontinued theories Code_Integer and Efficient_Nat by a more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6633
fine-grain stack of theories Code_Target_Int, Code_Binary_Nat,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6634
Code_Target_Nat and Code_Target_Numeral.  See the tutorial on code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6635
generation for details.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6636
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6637
* Numeric types are mapped by default to target language numerals:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6638
natural (replaces former code_numeral) and integer (replaces former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6639
code_int).  Conversions are available as integer_of_natural /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6640
natural_of_integer / integer_of_nat / nat_of_integer (in HOL) and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6641
Code_Numeral.integer_of_natural / Code_Numeral.natural_of_integer (in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6642
ML).  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6643
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6644
* Function package: For mutually recursive functions f and g, separate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6645
cases rules f.cases and g.cases are generated instead of unusable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6646
f_g.cases which exposed internal sum types. Potential INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6647
in the case that the unusable rule was used nevertheless.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6648
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6649
* Function package: For each function f, new rules f.elims are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6650
generated, which eliminate equalities of the form "f x = t".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6651
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6652
* New command 'fun_cases' derives ad-hoc elimination rules for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6653
function equations as simplified instances of f.elims, analogous to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6654
inductive_cases.  See ~~/src/HOL/ex/Fundefs.thy for some examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6655
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6656
* Lifting:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6657
  - parametrized correspondence relations are now supported:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6658
    + parametricity theorems for the raw term can be specified in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6659
      the command lift_definition, which allow us to generate stronger
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6660
      transfer rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6661
    + setup_lifting generates stronger transfer rules if parametric
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6662
      correspondence relation can be generated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6663
    + various new properties of the relator must be specified to support
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6664
      parametricity
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6665
    + parametricity theorem for the Quotient relation can be specified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6666
  - setup_lifting generates domain rules for the Transfer package
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6667
  - stronger reflexivity prover of respectfulness theorems for type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6668
    copies
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6669
  - ===> and --> are now local. The symbols can be introduced
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6670
    by interpreting the locale lifting_syntax (typically in an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6671
    anonymous context)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6672
  - Lifting/Transfer relevant parts of Library/Quotient_* are now in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6673
    Main. Potential INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6674
  - new commands for restoring and deleting Lifting/Transfer context:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6675
    lifting_forget, lifting_update
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6676
  - the command print_quotmaps was renamed to print_quot_maps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6677
    INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6678
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6679
* Transfer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6680
  - better support for domains in Transfer: replace Domainp T
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6681
    by the actual invariant in a transferred goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6682
  - transfer rules can have as assumptions other transfer rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6683
  - Experimental support for transferring from the raw level to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6684
    abstract level: Transfer.transferred attribute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6685
  - Attribute version of the transfer method: untransferred attribute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6686
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6687
* Reification and reflection:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6688
  - Reification is now directly available in HOL-Main in structure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6689
    "Reification".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6690
  - Reflection now handles multiple lists with variables also.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6691
  - The whole reflection stack has been decomposed into conversions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6692
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6693
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6694
* Revised devices for recursive definitions over finite sets:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6695
  - Only one fundamental fold combinator on finite set remains:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6696
    Finite_Set.fold :: ('a => 'b => 'b) => 'b => 'a set => 'b
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6697
    This is now identity on infinite sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6698
  - Locales ("mini packages") for fundamental definitions with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6699
    Finite_Set.fold: folding, folding_idem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6700
  - Locales comm_monoid_set, semilattice_order_set and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6701
    semilattice_neutr_order_set for big operators on sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6702
    See theory Big_Operators for canonical examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6703
    Note that foundational constants comm_monoid_set.F and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6704
    semilattice_set.F correspond to former combinators fold_image
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6705
    and fold1 respectively.  These are now gone.  You may use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6706
    those foundational constants as substitutes, but it is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6707
    preferable to interpret the above locales accordingly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6708
  - Dropped class ab_semigroup_idem_mult (special case of lattice,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6709
    no longer needed in connection with Finite_Set.fold etc.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6710
  - Fact renames:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6711
      card.union_inter ~> card_Un_Int [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6712
      card.union_disjoint ~> card_Un_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6713
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6714
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6715
* Locale hierarchy for abstract orderings and (semi)lattices.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6716
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6717
* Complete_Partial_Order.admissible is defined outside the type class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6718
ccpo, but with mandatory prefix ccpo. Admissibility theorems lose the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6719
class predicate assumption or sort constraint when possible.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6720
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6721
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6722
* Introduce type class "conditionally_complete_lattice": Like a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6723
complete lattice but does not assume the existence of the top and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6724
bottom elements.  Allows to generalize some lemmas about reals and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6725
extended reals.  Removed SupInf and replaced it by the instantiation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6726
of conditionally_complete_lattice for real. Renamed lemmas about
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6727
conditionally-complete lattice from Sup_... to cSup_... and from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6728
Inf_...  to cInf_... to avoid hidding of similar complete lattice
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6729
lemmas.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6730
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6731
* Introduce type class linear_continuum as combination of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6732
conditionally-complete lattices and inner dense linorders which have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6733
more than one element.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6734
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6735
* Introduced type classes order_top and order_bot. The old classes top
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6736
and bot only contain the syntax without assumptions.  INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6737
Rename bot -> order_bot, top -> order_top
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6738
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6739
* Introduce type classes "no_top" and "no_bot" for orderings without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6740
top and bottom elements.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6741
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6742
* Split dense_linorder into inner_dense_order and no_top, no_bot.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6743
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6744
* Complex_Main: Unify and move various concepts from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6745
HOL-Multivariate_Analysis to HOL-Complex_Main.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6746
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6747
 - Introduce type class (lin)order_topology and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6748
   linear_continuum_topology.  Allows to generalize theorems about
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6749
   limits and order.  Instances are reals and extended reals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6751
 - continuous and continuos_on from Multivariate_Analysis:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6752
   "continuous" is the continuity of a function at a filter.  "isCont"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6753
   is now an abbrevitation: "isCont x f == continuous (at _) f".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6754
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6755
   Generalized continuity lemmas from isCont to continuous on an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6756
   arbitrary filter.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6757
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6758
 - compact from Multivariate_Analysis. Use Bolzano's lemma to prove
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6759
   compactness of closed intervals on reals. Continuous functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6760
   attain infimum and supremum on compact sets. The inverse of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6761
   continuous function is continuous, when the function is continuous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6762
   on a compact set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6763
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6764
 - connected from Multivariate_Analysis. Use it to prove the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6765
   intermediate value theorem. Show connectedness of intervals on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6766
   linear_continuum_topology).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6767
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6768
 - first_countable_topology from Multivariate_Analysis. Is used to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6769
   show equivalence of properties on the neighbourhood filter of x and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6770
   on all sequences converging to x.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6771
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6772
 - FDERIV: Definition of has_derivative moved to Deriv.thy. Moved
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6773
   theorems from Library/FDERIV.thy to Deriv.thy and base the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6774
   definition of DERIV on FDERIV. Add variants of DERIV and FDERIV
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6775
   which are restricted to sets, i.e. to represent derivatives from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6776
   left or right.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6777
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6778
 - Removed the within-filter. It is replaced by the principal filter:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6779
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6780
     F within X = inf F (principal X)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6781
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6782
 - Introduce "at x within U" as a single constant, "at x" is now an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6783
   abbreviation for "at x within UNIV"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6784
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6785
 - Introduce named theorem collections tendsto_intros,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6786
   continuous_intros, continuous_on_intros and FDERIV_intros. Theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6787
   in tendsto_intros (or FDERIV_intros) are also available as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6788
   tendsto_eq_intros (or FDERIV_eq_intros) where the right-hand side
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6789
   is replaced by a congruence rule. This allows to apply them as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6790
   intro rules and then proving equivalence by the simplifier.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6791
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6792
 - Restructured theories in HOL-Complex_Main:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6793
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6794
   + Moved RealDef and RComplete into Real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6795
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6796
   + Introduced Topological_Spaces and moved theorems about
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6797
     topological spaces, filters, limits and continuity to it
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6798
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6799
   + Renamed RealVector to Real_Vector_Spaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6800
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6801
   + Split Lim, SEQ, Series into Topological_Spaces,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6802
     Real_Vector_Spaces, and Limits
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6803
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6804
   + Moved Ln and Log to Transcendental
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6805
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6806
   + Moved theorems about continuity from Deriv to Topological_Spaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6807
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6808
 - Remove various auxiliary lemmas.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6809
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6810
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6811
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6812
* Nitpick:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6813
  - Added option "spy".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6814
  - Reduce incidence of "too high arity" errors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6815
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6816
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6817
  - Renamed option:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6818
      isar_shrink ~> isar_compress
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6819
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6820
  - Added options "isar_try0", "spy".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6821
  - Better support for "isar_proofs".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6822
  - MaSh has been fined-tuned and now runs as a local server.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6823
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6824
* Improved support for ad hoc overloading of constants (see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6825
isar-ref manual and ~~/src/HOL/ex/Adhoc_Overloading_Examples.thy).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6826
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6827
* Library/Polynomial.thy:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6828
  - Use lifting for primitive definitions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6829
  - Explicit conversions from and to lists of coefficients, used for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6830
    generated code.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6831
  - Replaced recursion operator poly_rec by fold_coeffs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6832
  - Prefer pre-existing gcd operation for gcd.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6833
  - Fact renames:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6834
    poly_eq_iff ~> poly_eq_poly_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6835
    poly_ext ~> poly_eqI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6836
    expand_poly_eq ~> poly_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6837
IMCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6838
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6839
* New Library/Simps_Case_Conv.thy: Provides commands simps_of_case and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6840
case_of_simps to convert function definitions between a list of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6841
equations with patterns on the lhs and a single equation with case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6842
expressions on the rhs. See also Ex/Simps_Case_Conv_Examples.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6843
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6844
* New Library/FSet.thy: type of finite sets defined as a subtype of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6845
sets defined by Lifting/Transfer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6846
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6847
* Discontinued theory src/HOL/Library/Eval_Witness.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6848
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6849
* Consolidation of library theories on product orders:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6850
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6851
    Product_Lattice ~> Product_Order -- pointwise order on products
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6852
    Product_ord ~> Product_Lexorder -- lexicographic order on products
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6853
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6854
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6855
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6856
* Imperative-HOL: The MREC combinator is considered legacy and no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6857
longer included by default. INCOMPATIBILITY, use partial_function
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6858
instead, or import theory Legacy_Mrec as a fallback.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6859
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6860
* HOL-Algebra: Discontinued theories ~~/src/HOL/Algebra/abstract and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6861
~~/src/HOL/Algebra/poly.  Existing theories should be based on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6862
~~/src/HOL/Library/Polynomial instead.  The latter provides
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6863
integration with HOL's type classes for rings.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6864
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6865
* HOL-BNF:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6866
  - Various improvements to BNF-based (co)datatype package, including
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6867
    new commands "primrec_new", "primcorec", and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6868
    "datatype_new_compat", as well as documentation. See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6869
    "datatypes.pdf" for details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6870
  - New "coinduction" method to avoid some boilerplate (compared to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6871
    coinduct).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6872
  - Renamed keywords:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6873
    data ~> datatype_new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6874
    codata ~> codatatype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6875
    bnf_def ~> bnf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6876
  - Renamed many generated theorems, including
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6877
    discs ~> disc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6878
    map_comp' ~> map_comp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6879
    map_id' ~> map_id
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6880
    sels ~> sel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6881
    set_map' ~> set_map
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6882
    sets ~> set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6883
IMCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6884
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6885
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6886
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6887
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6888
* Spec_Check is a Quickcheck tool for Isabelle/ML.  The ML function
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6889
"check_property" allows to check specifications of the form "ALL x y
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6890
z. prop x y z".  See also ~~/src/Tools/Spec_Check/ with its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6891
Examples.thy in particular.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6892
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6893
* Improved printing of exception trace in Poly/ML 5.5.1, with regular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6894
tracing output in the command transaction context instead of physical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6895
stdout.  See also Toplevel.debug, Toplevel.debugging and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6896
ML_Compiler.exn_trace.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6897
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6898
* ML type "theory" is now immutable, without any special treatment of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6899
drafts or linear updates (which could lead to "stale theory" errors in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6900
the past).  Discontinued obsolete operations like Theory.copy,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6901
Theory.checkpoint, and the auxiliary type theory_ref.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6902
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6903
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6904
* More uniform naming of goal functions for skipped proofs:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6905
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6906
    Skip_Proof.prove  ~>  Goal.prove_sorry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6907
    Skip_Proof.prove_global  ~>  Goal.prove_sorry_global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6908
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6909
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6910
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6911
* Simplifier tactics and tools use proper Proof.context instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6912
historic type simpset.  Old-style declarations like addsimps,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6913
addsimprocs etc. operate directly on Proof.context.  Raw type simpset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6914
retains its use as snapshot of the main Simplifier context, using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6915
simpset_of and put_simpset on Proof.context.  INCOMPATIBILITY -- port
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6916
old tools by making them depend on (ctxt : Proof.context) instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6917
(ss : simpset), then turn (simpset_of ctxt) into ctxt.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6918
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6919
* Modifiers for classical wrappers (e.g. addWrapper, delWrapper)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6920
operate on Proof.context instead of claset, for uniformity with addIs,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6921
addEs, addDs etc. Note that claset_of and put_claset allow to manage
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6922
clasets separately from the context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6924
* Discontinued obsolete ML antiquotations @{claset} and @{simpset}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6925
INCOMPATIBILITY, use @{context} instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6926
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6927
* Antiquotation @{theory_context A} is similar to @{theory A}, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6928
presents the result as initial Proof.context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6929
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6930
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6931
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6932
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6933
* Discontinued obsolete isabelle usedir, mkdir, make -- superseded by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6934
"isabelle build" in Isabelle2013.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6935
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6936
* Discontinued obsolete isabelle-process options -f and -u (former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6937
administrative aliases of option -e).  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6938
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6939
* Discontinued obsolete isabelle print tool, and PRINT_COMMAND
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6940
settings variable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6941
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6942
* Discontinued ISABELLE_DOC_FORMAT settings variable and historic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6943
document formats: dvi.gz, ps, ps.gz -- the default document format is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6944
always pdf.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6945
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6946
* Isabelle settings variable ISABELLE_BUILD_JAVA_OPTIONS allows to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6947
specify global resources of the JVM process run by isabelle build.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6948
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6949
* Toplevel executable $ISABELLE_HOME/bin/isabelle_scala_script allows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6950
to run Isabelle/Scala source files as standalone programs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6951
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6952
* Improved "isabelle keywords" tool (for old-style ProofGeneral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6953
keyword tables): use Isabelle/Scala operations, which inspect outer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6954
syntax without requiring to build sessions first.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6955
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6956
* Sessions may be organized via 'chapter' specifications in the ROOT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6957
file, which determines a two-level hierarchy of browser info.  The old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6958
tree-like organization via implicit sub-session relation (with its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6959
tendency towards erratic fluctuation of URLs) has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6960
The default chapter is called "Unsorted".  Potential INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6961
for HTML presentation of theories.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6962
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6963
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6964
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6965
New in Isabelle2013 (February 2013)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6966
-----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6967
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6968
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6969
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6970
* Theorem status about oracles and unfinished/failed future proofs is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6971
no longer printed by default, since it is incompatible with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6972
incremental / parallel checking of the persistent document model.  ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6973
function Thm.peek_status may be used to inspect a snapshot of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6974
ongoing evaluation process.  Note that in batch mode --- notably
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6975
isabelle build --- the system ensures that future proofs of all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6976
accessible theorems in the theory context are finished (as before).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6977
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6978
* Configuration option show_markup controls direct inlining of markup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6979
into the printed representation of formal entities --- notably type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6980
and sort constraints.  This enables Prover IDE users to retrieve that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6981
information via tooltips in the output window, for example.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6982
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6983
* Command 'ML_file' evaluates ML text from a file directly within the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6984
theory, without any predeclaration via 'uses' in the theory header.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6985
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6986
* Old command 'use' command and corresponding keyword 'uses' in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6987
theory header are legacy features and will be discontinued soon.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6988
Tools that load their additional source files may imitate the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6989
'ML_file' implementation, such that the system can take care of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6990
dependencies properly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6991
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6992
* Discontinued obsolete method fastsimp / tactic fast_simp_tac, which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6993
is called fastforce / fast_force_tac already since Isabelle2011-1.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6994
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6995
* Updated and extended "isar-ref" and "implementation" manual, reduced
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6996
remaining material in old "ref" manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6997
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6998
* Improved support for auxiliary contexts that indicate block structure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  6999
for specifications.  Nesting of "context fixes ... context assumes ..."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7000
and "class ... context ...".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7001
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7002
* Attribute "consumes" allows a negative value as well, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7003
interpreted relatively to the total number of premises of the rule in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7004
the target context.  This form of declaration is stable when exported
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7005
from a nested 'context' with additional assumptions.  It is the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7006
preferred form for definitional packages, notably cases/rules produced
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7007
in HOL/inductive and HOL/function.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7008
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7009
* More informative error messages for Isar proof commands involving
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7010
lazy enumerations (method applications etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7011
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7012
* Refined 'help' command to retrieve outer syntax commands according
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7013
to name patterns (with clickable results).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7014
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7015
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7016
*** Prover IDE -- Isabelle/Scala/jEdit ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7017
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7018
* Parallel terminal proofs ('by') are enabled by default, likewise
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7019
proofs that are built into packages like 'datatype', 'function'.  This
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7020
allows to "run ahead" checking the theory specifications on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7021
surface, while the prover is still crunching on internal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7022
justifications.  Unfinished / cancelled proofs are restarted as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7023
required to complete full proof checking eventually.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7024
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7025
* Improved output panel with tooltips, hyperlinks etc. based on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7026
same Rich_Text_Area as regular Isabelle/jEdit buffers.  Activation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7027
tooltips leads to some window that supports the same recursively,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7028
which can lead to stacks of tooltips as the semantic document content
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7029
is explored.  ESCAPE closes the whole stack, individual windows may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7030
closed separately, or detached to become independent jEdit dockables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7031
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7032
* Improved support for commands that produce graph output: the text
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7033
message contains a clickable area to open a new instance of the graph
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7034
browser on demand.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7035
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7036
* More robust incremental parsing of outer syntax (partial comments,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7037
malformed symbols).  Changing the balance of open/close quotes and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7038
comment delimiters works more conveniently with unfinished situations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7039
that frequently occur in user interaction.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7040
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7041
* More efficient painting and improved reactivity when editing large
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7042
files.  More scalable management of formal document content.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7043
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7044
* Smarter handling of tracing messages: prover process pauses after
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7045
certain number of messages per command transaction, with some user
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7046
dialog to stop or continue.  This avoids swamping the front-end with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7047
potentially infinite message streams.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7049
* More plugin options and preferences, based on Isabelle/Scala.  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7050
jEdit plugin option panel provides access to some Isabelle/Scala
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7051
options, including tuning parameters for editor reactivity and color
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7052
schemes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7053
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7054
* Dockable window "Symbols" provides some editing support for Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7055
symbols.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7056
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7057
* Dockable window "Monitor" shows ML runtime statistics.  Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7058
continuous display of the chart slows down the system.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7059
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7060
* Improved editing support for control styles: subscript, superscript,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7061
bold, reset of style -- operating on single symbols or text
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7062
selections.  Cf. keyboard shortcuts C+e DOWN/UP/RIGHT/LEFT.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7063
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7064
* Actions isabelle.increase-font-size and isabelle.decrease-font-size
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7065
adjust the main text area font size, and its derivatives for output,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7066
tooltips etc.  Cf. keyboard shortcuts C-PLUS and C-MINUS, which often
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7067
need to be adapted to local keyboard layouts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7068
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7069
* More reactive completion popup by default: use \t (TAB) instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7070
\n (NEWLINE) to minimize intrusion into regular flow of editing.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7071
also "Plugin Options / SideKick / General / Code Completion Options".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7072
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7073
* Implicit check and build dialog of the specified logic session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7074
image.  For example, HOL, HOLCF, HOL-Nominal can be produced on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7075
demand, without bundling big platform-dependent heap images in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7076
Isabelle distribution.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7077
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7078
* Uniform Java 7 platform on Linux, Mac OS X, Windows: recent updates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7079
from Oracle provide better multi-platform experience.  This version is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7080
now bundled exclusively with Isabelle.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7081
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7082
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7083
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7084
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7085
* Code generation for Haskell: restrict unqualified imports from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7086
Haskell Prelude to a small set of fundamental operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7088
* Command 'export_code': relative file names are interpreted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7089
relatively to master directory of current theory rather than the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7090
rather arbitrary current working directory.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7091
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7092
* Discontinued obsolete attribute "COMP".  Potential INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7093
use regular rule composition via "OF" / "THEN", or explicit proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7094
structure instead.  Note that Isabelle/ML provides a variety of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7095
operators like COMP, INCR_COMP, COMP_INCR, which need to be applied
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7096
with some care where this is really required.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7097
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7098
* Command 'typ' supports an additional variant with explicit sort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7099
constraint, to infer and check the most general type conforming to a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7100
given sort.  Example (in HOL):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7101
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7102
  typ "_ * _ * bool * unit" :: finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7103
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7104
* Command 'locale_deps' visualizes all locales and their relations as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7105
a Hasse diagram.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7106
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7107
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7108
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7109
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7110
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7111
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7112
  - Added MaSh relevance filter based on machine-learning; see the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7113
    Sledgehammer manual for details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7114
  - Polished Isar proofs generated with "isar_proofs" option.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7115
  - Rationalized type encodings ("type_enc" option).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7116
  - Renamed "kill_provers" subcommand to "kill_all".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7117
  - Renamed options:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7118
      isar_proof ~> isar_proofs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7119
      isar_shrink_factor ~> isar_shrink
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7120
      max_relevant ~> max_facts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7121
      relevance_thresholds ~> fact_thresholds
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7122
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7123
* Quickcheck: added an optimisation for equality premises.  It is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7124
switched on by default, and can be switched off by setting the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7125
configuration quickcheck_optimise_equality to false.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7126
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7127
* Quotient: only one quotient can be defined by quotient_type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7128
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7129
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7130
* Lifting:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7131
  - generation of an abstraction function equation in lift_definition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7132
  - quot_del attribute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7133
  - renamed no_abs_code -> no_code (INCOMPATIBILITY.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7134
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7135
* Simproc "finite_Collect" rewrites set comprehensions into pointfree
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7136
expressions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7137
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7138
* Preprocessing of the code generator rewrites set comprehensions into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7139
pointfree expressions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7140
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7141
* The SMT solver Z3 has now by default a restricted set of directly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7142
supported features. For the full set of features (div/mod, nonlinear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7143
arithmetic, datatypes/records) with potential proof reconstruction
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7144
failures, enable the configuration option "z3_with_extensions".  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7145
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7146
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7147
* Simplified 'typedef' specifications: historical options for implicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7148
set definition and alternative name have been discontinued.  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7149
former behavior of "typedef (open) t = A" is now the default, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7150
written just "typedef t = A".  INCOMPATIBILITY, need to adapt theories
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7151
accordingly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7152
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7153
* Removed constant "chars"; prefer "Enum.enum" on type "char"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7154
directly.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7155
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7156
* Moved operation product, sublists and n_lists from theory Enum to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7157
List.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7158
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7159
* Theorem UN_o generalized to SUP_comp.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7160
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7161
* Class "comm_monoid_diff" formalises properties of bounded
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7162
subtraction, with natural numbers and multisets as typical instances.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7163
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7164
* Added combinator "Option.these" with type "'a option set => 'a set".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7165
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7166
* Theory "Transitive_Closure": renamed lemmas
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7167
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7168
  reflcl_tranclp -> reflclp_tranclp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7169
  rtranclp_reflcl -> rtranclp_reflclp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7170
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7171
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7172
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7173
* Theory "Rings": renamed lemmas (in class semiring)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7174
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7175
  left_distrib ~> distrib_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7176
  right_distrib ~> distrib_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7177
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7178
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7179
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7180
* Generalized the definition of limits:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7181
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7182
  - Introduced the predicate filterlim (LIM x F. f x :> G) which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7183
    expresses that when the input values x converge to F then the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7184
    output f x converges to G.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7185
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7186
  - Added filters for convergence to positive (at_top) and negative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7187
    infinity (at_bot).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7188
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7189
  - Moved infinity in the norm (at_infinity) from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7190
    Multivariate_Analysis to Complex_Main.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7191
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7192
  - Removed real_tendsto_inf, it is superseded by "LIM x F. f x :>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7193
    at_top".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7194
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7195
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7196
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7197
* Theory "Library/Option_ord" provides instantiation of option type to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7198
lattice type classes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7199
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7200
* Theory "Library/Multiset": renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7201
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7202
    constant fold_mset ~> Multiset.fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7203
    fact fold_mset_commute ~> fold_mset_comm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7204
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7205
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7206
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7207
* Renamed theory Library/List_Prefix to Library/Sublist, with related
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7208
changes as follows.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7209
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7210
  - Renamed constants (and related lemmas)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7211
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7212
      prefix ~> prefixeq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7213
      strict_prefix ~> prefix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7214
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7215
  - Replaced constant "postfix" by "suffixeq" with swapped argument
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7216
    order (i.e., "postfix xs ys" is now "suffixeq ys xs") and dropped
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7217
    old infix syntax "xs >>= ys"; use "suffixeq ys xs" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7218
    Renamed lemmas accordingly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7219
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7220
  - Added constant "list_hembeq" for homeomorphic embedding on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7221
    lists. Added abbreviation "sublisteq" for special case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7222
    "list_hembeq (op =)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7223
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7224
  - Theory Library/Sublist no longer provides "order" and "bot" type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7225
    class instances for the prefix order (merely corresponding locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7226
    interpretations). The type class instances are now in theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7227
    Library/Prefix_Order.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7228
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7229
  - The sublist relation of theory Library/Sublist_Order is now based
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7230
    on "Sublist.sublisteq".  Renamed lemmas accordingly:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7231
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7232
      le_list_append_le_same_iff ~> Sublist.sublisteq_append_le_same_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7233
      le_list_append_mono ~> Sublist.list_hembeq_append_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7234
      le_list_below_empty ~> Sublist.list_hembeq_Nil, Sublist.list_hembeq_Nil2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7235
      le_list_Cons_EX ~> Sublist.list_hembeq_ConsD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7236
      le_list_drop_Cons2 ~> Sublist.sublisteq_Cons2'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7237
      le_list_drop_Cons_neq ~> Sublist.sublisteq_Cons2_neq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7238
      le_list_drop_Cons ~> Sublist.sublisteq_Cons'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7239
      le_list_drop_many ~> Sublist.sublisteq_drop_many
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7240
      le_list_filter_left ~> Sublist.sublisteq_filter_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7241
      le_list_rev_drop_many ~> Sublist.sublisteq_rev_drop_many
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7242
      le_list_rev_take_iff ~> Sublist.sublisteq_append
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7243
      le_list_same_length ~> Sublist.sublisteq_same_length
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7244
      le_list_take_many_iff ~> Sublist.sublisteq_append'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7245
      less_eq_list.drop ~> less_eq_list_drop
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7246
      less_eq_list.induct ~> less_eq_list_induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7247
      not_le_list_length ~> Sublist.not_sublisteq_length
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7248
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7249
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7250
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7251
* New theory Library/Countable_Set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7252
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7253
* Theory Library/Debug and Library/Parallel provide debugging and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7254
parallel execution for code generated towards Isabelle/ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7255
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7256
* Theory Library/FuncSet: Extended support for Pi and extensional and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7257
introduce the extensional dependent function space "PiE". Replaced
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7258
extensional_funcset by an abbreviation, and renamed lemmas from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7259
extensional_funcset to PiE as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7260
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7261
  extensional_empty  ~>  PiE_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7262
  extensional_funcset_empty_domain  ~>  PiE_empty_domain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7263
  extensional_funcset_empty_range  ~>  PiE_empty_range
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7264
  extensional_funcset_arb  ~>  PiE_arb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7265
  extensional_funcset_mem  ~>  PiE_mem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7266
  extensional_funcset_extend_domainI  ~>  PiE_fun_upd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7267
  extensional_funcset_restrict_domain  ~>  fun_upd_in_PiE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7268
  extensional_funcset_extend_domain_eq  ~>  PiE_insert_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7269
  card_extensional_funcset  ~>  card_PiE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7270
  finite_extensional_funcset  ~>  finite_PiE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7271
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7272
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7273
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7274
* Theory Library/FinFun: theory of almost everywhere constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7275
functions (supersedes the AFP entry "Code Generation for Functions as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7276
Data").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7277
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7278
* Theory Library/Phantom: generic phantom type to make a type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7279
parameter appear in a constant's type.  This alternative to adding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7280
TYPE('a) as another parameter avoids unnecessary closures in generated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7281
code.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7282
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7283
* Theory Library/RBT_Impl: efficient construction of red-black trees
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7284
from sorted associative lists. Merging two trees with rbt_union may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7285
return a structurally different tree than before.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7286
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7287
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7288
* Theory Library/IArray: immutable arrays with code generation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7289
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7290
* Theory Library/Finite_Lattice: theory of finite lattices.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7291
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7292
* HOL/Multivariate_Analysis: replaced
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7293
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7294
  "basis :: 'a::euclidean_space => nat => real"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7295
  "\<Chi>\<Chi> :: (nat => real) => 'a::euclidean_space"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7296
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7297
on euclidean spaces by using the inner product "_ \<bullet> _" with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7298
vectors from the Basis set: "\<Chi>\<Chi> i. f i" is superseded by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7299
"SUM i : Basis. f i * r i".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7300
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7301
  With this change the following constants are also changed or removed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7302
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7303
    DIM('a) :: nat  ~>  card (Basis :: 'a set)   (is an abbreviation)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7304
    a $$ i  ~>  inner a i  (where i : Basis)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7305
    cart_base i  removed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7306
    \<pi>, \<pi>'  removed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7308
  Theorems about these constants where removed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7309
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7310
  Renamed lemmas:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7311
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7312
    component_le_norm  ~>  Basis_le_norm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7313
    euclidean_eq  ~>  euclidean_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7314
    differential_zero_maxmin_component  ~>  differential_zero_maxmin_cart
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7315
    euclidean_simps  ~>  inner_simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7316
    independent_basis  ~>  independent_Basis
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7317
    span_basis  ~>  span_Basis
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7318
    in_span_basis  ~>  in_span_Basis
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7319
    norm_bound_component_le  ~>  norm_boound_Basis_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7320
    norm_bound_component_lt  ~>  norm_boound_Basis_lt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7321
    component_le_infnorm  ~>  Basis_le_infnorm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7322
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7323
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7324
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7325
* HOL/Probability:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7326
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7327
  - Added simproc "measurable" to automatically prove measurability.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7328
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7329
  - Added induction rules for sigma sets with disjoint union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7330
    (sigma_sets_induct_disjoint) and for Borel-measurable functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7331
    (borel_measurable_induct).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7332
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7333
  - Added the Daniell-Kolmogorov theorem (the existence the limit of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7334
    projective family).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7335
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7336
* HOL/Cardinals: Theories of ordinals and cardinals (supersedes the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7337
AFP entry "Ordinals_and_Cardinals").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7338
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7339
* HOL/BNF: New (co)datatype package based on bounded natural functors
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7340
with support for mixed, nested recursion and interesting non-free
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7341
datatypes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7342
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7343
* HOL/Finite_Set and Relation: added new set and relation operations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7344
expressed by Finite_Set.fold.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7345
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7346
* New theory HOL/Library/RBT_Set: implementation of sets by red-black
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7347
trees for the code generator.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7348
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7349
* HOL/Library/RBT and HOL/Library/Mapping have been converted to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7350
Lifting/Transfer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7351
possible INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7352
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7353
* HOL/Set: renamed Set.project -> Set.filter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7354
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7355
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7356
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7357
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7358
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7359
* Dropped legacy antiquotations "term_style" and "thm_style", since
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7360
styles may be given as arguments to "term" and "thm" already.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7361
Discontinued legacy styles "prem1" .. "prem19".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7362
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7363
* Default LaTeX rendering for \<euro> is now based on eurosym package,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7364
instead of slightly exotic babel/greek.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7365
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7366
* Document variant NAME may use different LaTeX entry point
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7367
document/root_NAME.tex if that file exists, instead of the common
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7368
document/root.tex.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7369
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7370
* Simplified custom document/build script, instead of old-style
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7371
document/IsaMakefile.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7372
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7373
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7374
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7375
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7376
* The default limit for maximum number of worker threads is now 8,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7377
instead of 4, in correspondence to capabilities of contemporary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7378
hardware and Poly/ML runtime system.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7379
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7380
* Type Seq.results and related operations support embedded error
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7381
messages within lazy enumerations, and thus allow to provide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7382
informative errors in the absence of any usable results.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7383
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7384
* Renamed Position.str_of to Position.here to emphasize that this is a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7385
formal device to inline positions into message text, but not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7386
necessarily printing visible text.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7387
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7388
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7389
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7390
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7391
* Advanced support for Isabelle sessions and build management, see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7392
"system" manual for the chapter of that name, especially the "isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7393
build" tool and its examples.  The "isabelle mkroot" tool prepares
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7394
session root directories for use with "isabelle build", similar to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7395
former "isabelle mkdir" for "isabelle usedir".  Note that this affects
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7396
document preparation as well.  INCOMPATIBILITY, isabelle usedir /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7397
mkdir / make are rendered obsolete.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7398
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7399
* Discontinued obsolete Isabelle/build script, it is superseded by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7400
regular isabelle build tool.  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7401
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7402
  isabelle build -s -b HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7403
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7404
* Discontinued obsolete "isabelle makeall".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7405
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7406
* Discontinued obsolete IsaMakefile and ROOT.ML files from the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7407
Isabelle distribution, except for rudimentary src/HOL/IsaMakefile that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7408
provides some traditional targets that invoke "isabelle build".  Note
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7409
that this is inefficient!  Applications of Isabelle/HOL involving
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7410
"isabelle make" should be upgraded to use "isabelle build" directly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7411
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7412
* The "isabelle options" tool prints Isabelle system options, as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7413
required for "isabelle build", for example.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7414
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7415
* The "isabelle logo" tool produces EPS and PDF format simultaneously.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7416
Minor INCOMPATIBILITY in command-line options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7417
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7418
* The "isabelle install" tool has now a simpler command-line.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7419
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7420
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7421
* The "isabelle components" tool helps to resolve add-on components
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7422
that are not bundled, or referenced from a bare-bones repository
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7423
version of Isabelle.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7424
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7425
* Settings variable ISABELLE_PLATFORM_FAMILY refers to the general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7426
platform family: "linux", "macos", "windows".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7427
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7428
* The ML system is configured as regular component, and no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7429
picked up from some surrounding directory.  Potential INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7430
for home-made settings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7431
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7432
* Improved ML runtime statistics (heap, threads, future tasks etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7433
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7434
* Discontinued support for Poly/ML 5.2.1, which was the last version
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7435
without exception positions and advanced ML compiler/toplevel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7436
configuration.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7437
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7438
* Discontinued special treatment of Proof General -- no longer guess
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7439
PROOFGENERAL_HOME based on accidental file-system layout.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7440
INCOMPATIBILITY: provide PROOFGENERAL_HOME and PROOFGENERAL_OPTIONS
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7441
settings manually, or use a Proof General version that has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7442
bundled as Isabelle component.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7444
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7445
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7446
New in Isabelle2012 (May 2012)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7447
------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7448
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7449
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7450
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7451
* Prover IDE (PIDE) improvements:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7452
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7453
  - more robust Sledgehammer integration (as before the sledgehammer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7454
    command-line needs to be typed into the source buffer)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7455
  - markup for bound variables
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7456
  - markup for types of term variables (displayed as tooltips)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7457
  - support for user-defined Isar commands within the running session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7458
  - improved support for Unicode outside original 16bit range
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7459
    e.g. glyph for \<A> (thanks to jEdit 4.5.1)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7460
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7461
* Forward declaration of outer syntax keywords within the theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7462
header -- minor INCOMPATIBILITY for user-defined commands.  Allow new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7463
commands to be used in the same theory where defined.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7464
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7465
* Auxiliary contexts indicate block structure for specifications with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7466
additional parameters and assumptions.  Such unnamed contexts may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7467
nested within other targets, like 'theory', 'locale', 'class',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7468
'instantiation' etc.  Results from the local context are generalized
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7469
accordingly and applied to the enclosing target context.  Example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7470
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7471
  context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7472
    fixes x y z :: 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7473
    assumes xy: "x = y" and yz: "y = z"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7474
  begin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7475
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7476
  lemma my_trans: "x = z" using xy yz by simp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7477
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7478
  end
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7479
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7480
  thm my_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7481
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7482
The most basic application is to factor-out context elements of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7483
several fixes/assumes/shows theorem statements, e.g. see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7484
~~/src/HOL/Isar_Examples/Group_Context.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7485
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7486
Any other local theory specification element works within the "context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7487
... begin ... end" block as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7488
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7489
* Bundled declarations associate attributed fact expressions with a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7490
given name in the context.  These may be later included in other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7491
contexts.  This allows to manage context extensions casually, without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7492
the logical dependencies of locales and locale interpretation.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7493
commands 'bundle', 'include', 'including' etc. in the isar-ref manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7494
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7495
* Commands 'lemmas' and 'theorems' allow local variables using 'for'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7496
declaration, and results are standardized before being stored.  Thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7497
old-style "standard" after instantiation or composition of facts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7498
becomes obsolete.  Minor INCOMPATIBILITY, due to potential change of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7499
indices of schematic variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7500
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7501
* Rule attributes in local theory declarations (e.g. locale or class)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7502
are now statically evaluated: the resulting theorem is stored instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7503
of the original expression.  INCOMPATIBILITY in rare situations, where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7504
the historic accident of dynamic re-evaluation in interpretations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7505
etc. was exploited.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7506
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7507
* New tutorial "Programming and Proving in Isabelle/HOL"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7508
("prog-prove").  It completely supersedes "A Tutorial Introduction to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7509
Structured Isar Proofs" ("isar-overview"), which has been removed.  It
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7510
also supersedes "Isabelle/HOL, A Proof Assistant for Higher-Order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7511
Logic" as the recommended beginners tutorial, but does not cover all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7512
of the material of that old tutorial.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7513
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7514
* Updated and extended reference manuals: "isar-ref",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7515
"implementation", "system"; reduced remaining material in old "ref"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7516
manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7517
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7518
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7519
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7520
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7521
* Command 'definition' no longer exports the foundational "raw_def"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7522
into the user context.  Minor INCOMPATIBILITY, may use the regular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7523
"def" result with attribute "abs_def" to imitate the old version.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7524
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7525
* Attribute "abs_def" turns an equation of the form "f x y == t" into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7526
"f == %x y. t", which ensures that "simp" or "unfold" steps always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7527
expand it.  This also works for object-logic equality.  (Formerly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7528
undocumented feature.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7529
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7530
* Sort constraints are now propagated in simultaneous statements, just
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7531
like type constraints.  INCOMPATIBILITY in rare situations, where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7532
distinct sorts used to be assigned accidentally.  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7533
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7534
  lemma "P (x::'a::foo)" and "Q (y::'a::bar)"  -- "now illegal"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7535
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7536
  lemma "P (x::'a)" and "Q (y::'a::bar)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7537
    -- "now uniform 'a::bar instead of default sort for first occurrence (!)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7538
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7539
* Rule composition via attribute "OF" (or ML functions OF/MRS) is more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7540
tolerant against multiple unifiers, as long as the final result is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7541
unique.  (As before, rules are composed in canonical right-to-left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7542
order to accommodate newly introduced premises.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7543
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7544
* Renamed some inner syntax categories:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7545
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7546
    num ~> num_token
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7547
    xnum ~> xnum_token
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7548
    xstr ~> str_token
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7549
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7550
Minor INCOMPATIBILITY.  Note that in practice "num_const" or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7551
"num_position" etc. are mainly used instead (which also include
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7552
position information via constraints).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7553
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7554
* Simplified configuration options for syntax ambiguity: see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7555
"syntax_ambiguity_warning" and "syntax_ambiguity_limit" in isar-ref
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7556
manual.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7557
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7558
* Discontinued configuration option "syntax_positions": atomic terms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7559
in parse trees are always annotated by position constraints.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7560
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7561
* Old code generator for SML and its commands 'code_module',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7562
'code_library', 'consts_code', 'types_code' have been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7563
Use commands of the generic code generator instead.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7564
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7565
* Redundant attribute "code_inline" has been discontinued. Use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7566
"code_unfold" instead.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7567
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7568
* Dropped attribute "code_unfold_post" in favor of the its dual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7569
"code_abbrev", which yields a common pattern in definitions like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7570
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7571
  definition [code_abbrev]: "f = t"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7572
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7573
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7574
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7575
* Obsolete 'types' command has been discontinued.  Use 'type_synonym'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7576
instead.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7577
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7578
* Discontinued old "prems" fact, which used to refer to the accidental
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7579
collection of foundational premises in the context (already marked as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7580
legacy since Isabelle2011).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7581
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7582
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7583
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7584
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7585
* Type 'a set is now a proper type constructor (just as before
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7586
Isabelle2008).  Definitions mem_def and Collect_def have disappeared.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7587
Non-trivial INCOMPATIBILITY.  For developments keeping predicates and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7588
sets separate, it is often sufficient to rephrase some set S that has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7589
been accidentally used as predicates by "%x. x : S", and some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7590
predicate P that has been accidentally used as set by "{x. P x}".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7591
Corresponding proofs in a first step should be pruned from any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7592
tinkering with former theorems mem_def and Collect_def as far as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7593
possible.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7594
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7595
For developments which deliberately mix predicates and sets, a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7596
planning step is necessary to determine what should become a predicate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7597
and what a set.  It can be helpful to carry out that step in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7598
Isabelle2011-1 before jumping right into the current release.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7599
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7600
* Code generation by default implements sets as container type rather
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7601
than predicates.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7602
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7603
* New type synonym 'a rel = ('a * 'a) set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7604
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7605
* The representation of numerals has changed.  Datatype "num"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7606
represents strictly positive binary numerals, along with functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7607
"numeral :: num => 'a" and "neg_numeral :: num => 'a" to represent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7608
positive and negated numeric literals, respectively.  See also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7609
definitions in ~~/src/HOL/Num.thy.  Potential INCOMPATIBILITY, some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7610
user theories may require adaptations as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7611
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7612
  - Theorems with number_ring or number_semiring constraints: These
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7613
    classes are gone; use comm_ring_1 or comm_semiring_1 instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7614
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7615
  - Theories defining numeric types: Remove number, number_semiring,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7616
    and number_ring instances. Defer all theorems about numerals until
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7617
    after classes one and semigroup_add have been instantiated.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7618
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7619
  - Numeral-only simp rules: Replace each rule having a "number_of v"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7620
    pattern with two copies, one for numeral and one for neg_numeral.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7621
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7622
  - Theorems about subclasses of semiring_1 or ring_1: These classes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7623
    automatically support numerals now, so more simp rules and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7624
    simprocs may now apply within the proof.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7625
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7626
  - Definitions and theorems using old constructors Pls/Min/Bit0/Bit1:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7627
    Redefine using other integer operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7628
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7629
* Transfer: New package intended to generalize the existing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7630
"descending" method and related theorem attributes from the Quotient
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7631
package.  (Not all functionality is implemented yet, but future
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7632
development will focus on Transfer as an eventual replacement for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7633
corresponding parts of the Quotient package.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7634
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7635
  - transfer_rule attribute: Maintains a collection of transfer rules,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7636
    which relate constants at two different types. Transfer rules may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7637
    relate different type instances of the same polymorphic constant,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7638
    or they may relate an operation on a raw type to a corresponding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7639
    operation on an abstract type (quotient or subtype). For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7640
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7641
    ((A ===> B) ===> list_all2 A ===> list_all2 B) map map
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7642
    (cr_int ===> cr_int ===> cr_int) (%(x,y) (u,v). (x+u, y+v)) plus_int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7643
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7644
  - transfer method: Replaces a subgoal on abstract types with an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7645
    equivalent subgoal on the corresponding raw types. Constants are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7646
    replaced with corresponding ones according to the transfer rules.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7647
    Goals are generalized over all free variables by default; this is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7648
    necessary for variables whose types change, but can be overridden
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7649
    for specific variables with e.g. "transfer fixing: x y z".  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7650
    variant transfer' method allows replacing a subgoal with one that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7651
    is logically stronger (rather than equivalent).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7652
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7653
  - relator_eq attribute: Collects identity laws for relators of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7654
    various type constructors, e.g. "list_all2 (op =) = (op =)".  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7655
    transfer method uses these lemmas to infer transfer rules for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7656
    non-polymorphic constants on the fly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7657
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7658
  - transfer_prover method: Assists with proving a transfer rule for a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7659
    new constant, provided the constant is defined in terms of other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7660
    constants that already have transfer rules. It should be applied
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7661
    after unfolding the constant definitions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7662
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7663
  - HOL/ex/Transfer_Int_Nat.thy: Example theory demonstrating transfer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7664
    from type nat to type int.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7665
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7666
* Lifting: New package intended to generalize the quotient_definition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7667
facility of the Quotient package; designed to work with Transfer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7668
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7669
  - lift_definition command: Defines operations on an abstract type in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7670
    terms of a corresponding operation on a representation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7671
    type.  Example syntax:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7672
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7673
    lift_definition dlist_insert :: "'a => 'a dlist => 'a dlist"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7674
      is List.insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7675
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7676
    Users must discharge a respectfulness proof obligation when each
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7677
    constant is defined. (For a type copy, i.e. a typedef with UNIV,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7678
    the proof is discharged automatically.) The obligation is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7679
    presented in a user-friendly, readable form; a respectfulness
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7680
    theorem in the standard format and a transfer rule are generated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7681
    by the package.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7682
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7683
  - Integration with code_abstype: For typedefs (e.g. subtypes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7684
    corresponding to a datatype invariant, such as dlist),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7685
    lift_definition generates a code certificate theorem and sets up
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7686
    code generation for each constant.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7687
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7688
  - setup_lifting command: Sets up the Lifting package to work with a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7689
    user-defined type. The user must provide either a quotient theorem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7690
    or a type_definition theorem.  The package configures transfer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7691
    rules for equality and quantifiers on the type, and sets up the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7692
    lift_definition command to work with the type.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7693
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7694
  - Usage examples: See Quotient_Examples/Lift_DList.thy,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7695
    Quotient_Examples/Lift_RBT.thy, Quotient_Examples/Lift_FSet.thy,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7696
    Word/Word.thy and Library/Float.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7697
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7698
* Quotient package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7699
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7700
  - The 'quotient_type' command now supports a 'morphisms' option with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7701
    rep and abs functions, similar to typedef.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7702
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7703
  - 'quotient_type' sets up new types to work with the Lifting and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7704
    Transfer packages, as with 'setup_lifting'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7705
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7706
  - The 'quotient_definition' command now requires the user to prove a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7707
    respectfulness property at the point where the constant is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7708
    defined, similar to lift_definition; INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7709
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7710
  - Renamed predicate 'Quotient' to 'Quotient3', and renamed theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7711
    accordingly, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7712
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7713
* New diagnostic command 'find_unused_assms' to find potentially
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7714
superfluous assumptions in theorems using Quickcheck.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7715
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7716
* Quickcheck:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7717
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7718
  - Quickcheck returns variable assignments as counterexamples, which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7719
    allows to reveal the underspecification of functions under test.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7720
    For example, refuting "hd xs = x", it presents the variable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7721
    assignment xs = [] and x = a1 as a counterexample, assuming that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7722
    any property is false whenever "hd []" occurs in it.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7723
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7724
    These counterexample are marked as potentially spurious, as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7725
    Quickcheck also returns "xs = []" as a counterexample to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7726
    obvious theorem "hd xs = hd xs".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7727
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7728
    After finding a potentially spurious counterexample, Quickcheck
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7729
    continues searching for genuine ones.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7730
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7731
    By default, Quickcheck shows potentially spurious and genuine
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7732
    counterexamples. The option "genuine_only" sets quickcheck to only
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7733
    show genuine counterexamples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7734
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7735
  - The command 'quickcheck_generator' creates random and exhaustive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7736
    value generators for a given type and operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7737
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7738
    It generates values by using the operations as if they were
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7739
    constructors of that type.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7740
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7741
  - Support for multisets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7742
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7743
  - Added "use_subtype" options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7744
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7745
  - Added "quickcheck_locale" configuration to specify how to process
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7746
    conjectures in a locale context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7747
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7748
* Nitpick: Fixed infinite loop caused by the 'peephole_optim' option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7749
and affecting 'rat' and 'real'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7751
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7752
  - Integrated more tightly with SPASS, as described in the ITP 2012
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7753
    paper "More SPASS with Isabelle".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7754
  - Made it try "smt" as a fallback if "metis" fails or times out.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7755
  - Added support for the following provers: Alt-Ergo (via Why3 and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7756
    TFF1), iProver, iProver-Eq.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7757
  - Sped up the minimizer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7758
  - Added "lam_trans", "uncurry_aliases", and "minimize" options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7759
  - Renamed "slicing" ("no_slicing") option to "slice" ("dont_slice").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7760
  - Renamed "sound" option to "strict".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7761
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7762
* Metis: Added possibility to specify lambda translations scheme as a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7763
parenthesized argument (e.g., "by (metis (lifting) ...)").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7764
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7765
* SMT: Renamed "smt_fixed" option to "smt_read_only_certificates".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7766
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7767
* Command 'try0': Renamed from 'try_methods'. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7768
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7769
* New "case_product" attribute to generate a case rule doing multiple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7770
case distinctions at the same time.  E.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7771
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7772
  list.exhaust [case_product nat.exhaust]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7773
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7774
produces a rule which can be used to perform case distinction on both
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7775
a list and a nat.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7776
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7777
* New "eventually_elim" method as a generalized variant of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7778
eventually_elim* rules.  Supports structured proofs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7779
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7780
* Typedef with implicit set definition is considered legacy.  Use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7781
"typedef (open)" form instead, which will eventually become the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7782
default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7783
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7784
* Record: code generation can be switched off manually with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7785
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7786
  declare [[record_coden = false]]  -- "default true"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7787
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7788
* Datatype: type parameters allow explicit sort constraints.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7789
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7790
* Concrete syntax for case expressions includes constraints for source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7791
positions, and thus produces Prover IDE markup for its bindings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7792
INCOMPATIBILITY for old-style syntax translations that augment the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7793
pattern notation; e.g. see src/HOL/HOLCF/One.thy for translations of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7794
one_case.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7795
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7796
* Clarified attribute "mono_set": pure declaration without modifying
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7797
the result of the fact expression.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7798
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7799
* More default pred/set conversions on a couple of relation operations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7800
and predicates.  Added powers of predicate relations.  Consolidation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7801
of some relation theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7802
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7803
  converse_def ~> converse_unfold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7804
  rel_comp_def ~> relcomp_unfold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7805
  symp_def ~> (modified, use symp_def and sym_def instead)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7806
  transp_def ~> transp_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7807
  Domain_def ~> Domain_unfold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7808
  Range_def ~> Domain_converse [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7809
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7810
Generalized theorems INF_INT_eq, INF_INT_eq2, SUP_UN_eq, SUP_UN_eq2.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7811
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7812
See theory "Relation" for examples for making use of pred/set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7813
conversions by means of attributes "to_set" and "to_pred".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7814
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7815
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7816
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7817
* Renamed facts about the power operation on relations, i.e., relpow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7818
to match the constant's name:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7819
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7820
  rel_pow_1 ~> relpow_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7821
  rel_pow_0_I ~> relpow_0_I
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7822
  rel_pow_Suc_I ~> relpow_Suc_I
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7823
  rel_pow_Suc_I2 ~> relpow_Suc_I2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7824
  rel_pow_0_E ~> relpow_0_E
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7825
  rel_pow_Suc_E ~> relpow_Suc_E
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7826
  rel_pow_E ~> relpow_E
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7827
  rel_pow_Suc_D2 ~> relpow_Suc_D2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7828
  rel_pow_Suc_E2 ~> relpow_Suc_E2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7829
  rel_pow_Suc_D2' ~> relpow_Suc_D2'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7830
  rel_pow_E2 ~> relpow_E2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7831
  rel_pow_add ~> relpow_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7832
  rel_pow_commute ~> relpow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7833
  rel_pow_empty ~> relpow_empty:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7834
  rtrancl_imp_UN_rel_pow ~> rtrancl_imp_UN_relpow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7835
  rel_pow_imp_rtrancl ~> relpow_imp_rtrancl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7836
  rtrancl_is_UN_rel_pow ~> rtrancl_is_UN_relpow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7837
  rtrancl_imp_rel_pow ~> rtrancl_imp_relpow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7838
  rel_pow_fun_conv ~> relpow_fun_conv
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7839
  rel_pow_finite_bounded1 ~> relpow_finite_bounded1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7840
  rel_pow_finite_bounded ~> relpow_finite_bounded
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7841
  rtrancl_finite_eq_rel_pow ~> rtrancl_finite_eq_relpow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7842
  trancl_finite_eq_rel_pow ~> trancl_finite_eq_relpow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7843
  single_valued_rel_pow ~> single_valued_relpow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7844
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7845
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7846
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7847
* Theory Relation: Consolidated constant name for relation composition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7848
and corresponding theorem names:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7849
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7850
  - Renamed constant rel_comp to relcomp.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7851
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7852
  - Dropped abbreviation pred_comp. Use relcompp instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7853
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7854
  - Renamed theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7855
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7856
    rel_compI ~> relcompI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7857
    rel_compEpair ~> relcompEpair
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7858
    rel_compE ~> relcompE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7859
    pred_comp_rel_comp_eq ~> relcompp_relcomp_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7860
    rel_comp_empty1 ~> relcomp_empty1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7861
    rel_comp_mono ~> relcomp_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7862
    rel_comp_subset_Sigma ~> relcomp_subset_Sigma
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7863
    rel_comp_distrib ~> relcomp_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7864
    rel_comp_distrib2 ~> relcomp_distrib2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7865
    rel_comp_UNION_distrib ~> relcomp_UNION_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7866
    rel_comp_UNION_distrib2 ~> relcomp_UNION_distrib2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7867
    single_valued_rel_comp ~> single_valued_relcomp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7868
    rel_comp_def ~> relcomp_unfold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7869
    converse_rel_comp ~> converse_relcomp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7870
    pred_compI ~> relcomppI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7871
    pred_compE ~> relcomppE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7872
    pred_comp_bot1 ~> relcompp_bot1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7873
    pred_comp_bot2 ~> relcompp_bot2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7874
    transp_pred_comp_less_eq ~> transp_relcompp_less_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7875
    pred_comp_mono ~> relcompp_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7876
    pred_comp_distrib ~> relcompp_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7877
    pred_comp_distrib2 ~> relcompp_distrib2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7878
    converse_pred_comp ~> converse_relcompp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7879
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7880
    finite_rel_comp ~> finite_relcomp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7881
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7882
    set_rel_comp ~> set_relcomp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7883
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7884
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7885
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7886
* Theory Divides: Discontinued redundant theorems about div and mod.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7887
INCOMPATIBILITY, use the corresponding generic theorems instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7888
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7889
  DIVISION_BY_ZERO ~> div_by_0, mod_by_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7890
  zdiv_self ~> div_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7891
  zmod_self ~> mod_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7892
  zdiv_zero ~> div_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7893
  zmod_zero ~> mod_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7894
  zdiv_zmod_equality ~> div_mod_equality2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7895
  zdiv_zmod_equality2 ~> div_mod_equality
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7896
  zmod_zdiv_trivial ~> mod_div_trivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7897
  zdiv_zminus_zminus ~> div_minus_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7898
  zmod_zminus_zminus ~> mod_minus_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7899
  zdiv_zminus2 ~> div_minus_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7900
  zmod_zminus2 ~> mod_minus_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7901
  zdiv_minus1_right ~> div_minus1_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7902
  zmod_minus1_right ~> mod_minus1_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7903
  zdvd_mult_div_cancel ~> dvd_mult_div_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7904
  zmod_zmult1_eq ~> mod_mult_right_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7905
  zpower_zmod ~> power_mod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7906
  zdvd_zmod ~> dvd_mod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7907
  zdvd_zmod_imp_zdvd ~> dvd_mod_imp_dvd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7908
  mod_mult_distrib ~> mult_mod_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7909
  mod_mult_distrib2 ~> mult_mod_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7910
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7911
* Removed redundant theorems nat_mult_2 and nat_mult_2_right; use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7912
generic mult_2 and mult_2_right instead. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7913
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7914
* Finite_Set.fold now qualified.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7915
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7916
* Consolidated theorem names concerning fold combinators:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7917
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7918
  inf_INFI_fold_inf ~> inf_INF_fold_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7919
  sup_SUPR_fold_sup ~> sup_SUP_fold_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7920
  INFI_fold_inf ~> INF_fold_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7921
  SUPR_fold_sup ~> SUP_fold_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7922
  union_set ~> union_set_fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7923
  minus_set ~> minus_set_fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7924
  INFI_set_fold ~> INF_set_fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7925
  SUPR_set_fold ~> SUP_set_fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7926
  INF_code ~> INF_set_foldr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7927
  SUP_code ~> SUP_set_foldr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7928
  foldr.simps ~> foldr.simps (in point-free formulation)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7929
  foldr_fold_rev ~> foldr_conv_fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7930
  foldl_fold ~> foldl_conv_fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7931
  foldr_foldr ~> foldr_conv_foldl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7932
  foldl_foldr ~> foldl_conv_foldr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7933
  fold_set_remdups ~> fold_set_fold_remdups
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7934
  fold_set ~> fold_set_fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7935
  fold1_set ~> fold1_set_fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7936
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7937
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7938
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7939
* Dropped rarely useful theorems concerning fold combinators:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7940
foldl_apply, foldl_fun_comm, foldl_rev, fold_weak_invariant,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7941
rev_foldl_cons, fold_set_remdups, fold_set, fold_set1,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7942
concat_conv_foldl, foldl_weak_invariant, foldl_invariant,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7943
foldr_invariant, foldl_absorb0, foldl_foldr1_lemma, foldl_foldr1,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7944
listsum_conv_fold, listsum_foldl, sort_foldl_insort, foldl_assoc,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7945
foldr_conv_foldl, start_le_sum, elem_le_sum, sum_eq_0_conv.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7946
INCOMPATIBILITY.  For the common phrases "%xs. List.foldr plus xs 0"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7947
and "List.foldl plus 0", prefer "List.listsum".  Otherwise it can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7948
useful to boil down "List.foldr" and "List.foldl" to "List.fold" by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7949
unfolding "foldr_conv_fold" and "foldl_conv_fold".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7950
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7951
* Dropped lemmas minus_set_foldr, union_set_foldr, union_coset_foldr,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7952
inter_coset_foldr, Inf_fin_set_foldr, Sup_fin_set_foldr,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7953
Min_fin_set_foldr, Max_fin_set_foldr, Inf_set_foldr, Sup_set_foldr,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7954
INF_set_foldr, SUP_set_foldr.  INCOMPATIBILITY.  Prefer corresponding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7955
lemmas over fold rather than foldr, or make use of lemmas
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7956
fold_conv_foldr and fold_rev.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7957
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7958
* Congruence rules Option.map_cong and Option.bind_cong for recursion
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7959
through option types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7960
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7961
* "Transitive_Closure.ntrancl": bounded transitive closure on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7962
relations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7963
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7964
* Constant "Set.not_member" now qualified.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7965
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7966
* Theory Int: Discontinued many legacy theorems specific to type int.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7967
INCOMPATIBILITY, use the corresponding generic theorems instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7968
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7969
  zminus_zminus ~> minus_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7970
  zminus_0 ~> minus_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7971
  zminus_zadd_distrib ~> minus_add_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7972
  zadd_commute ~> add_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7973
  zadd_assoc ~> add_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7974
  zadd_left_commute ~> add_left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7975
  zadd_ac ~> add_ac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7976
  zmult_ac ~> mult_ac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7977
  zadd_0 ~> add_0_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7978
  zadd_0_right ~> add_0_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7979
  zadd_zminus_inverse2 ~> left_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7980
  zmult_zminus ~> mult_minus_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7981
  zmult_commute ~> mult_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7982
  zmult_assoc ~> mult_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7983
  zadd_zmult_distrib ~> left_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7984
  zadd_zmult_distrib2 ~> right_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7985
  zdiff_zmult_distrib ~> left_diff_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7986
  zdiff_zmult_distrib2 ~> right_diff_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7987
  zmult_1 ~> mult_1_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7988
  zmult_1_right ~> mult_1_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7989
  zle_refl ~> order_refl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7990
  zle_trans ~> order_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7991
  zle_antisym ~> order_antisym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7992
  zle_linear ~> linorder_linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7993
  zless_linear ~> linorder_less_linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7994
  zadd_left_mono ~> add_left_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7995
  zadd_strict_right_mono ~> add_strict_right_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7996
  zadd_zless_mono ~> add_less_le_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7997
  int_0_less_1 ~> zero_less_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7998
  int_0_neq_1 ~> zero_neq_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  7999
  zless_le ~> less_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8000
  zpower_zadd_distrib ~> power_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8001
  zero_less_zpower_abs_iff ~> zero_less_power_abs_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8002
  zero_le_zpower_abs ~> zero_le_power_abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8003
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8004
* Theory Deriv: Renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8005
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8006
  DERIV_nonneg_imp_nonincreasing ~> DERIV_nonneg_imp_nondecreasing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8007
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8008
* Theory Library/Multiset: Improved code generation of multisets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8009
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8010
* Theory HOL/Library/Set_Algebras: Addition and multiplication on sets
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8011
are expressed via type classes again. The special syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8012
\<oplus>/\<otimes> has been replaced by plain +/*. Removed constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8013
setsum_set, which is now subsumed by Big_Operators.setsum.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8014
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8015
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8016
* Theory HOL/Library/Diagonalize has been removed. INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8017
use theory HOL/Library/Nat_Bijection instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8018
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8019
* Theory HOL/Library/RBT_Impl: Backing implementation of red-black
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8020
trees is now inside a type class context.  Names of affected
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8021
operations and lemmas have been prefixed by rbt_.  INCOMPATIBILITY for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8022
theories working directly with raw red-black trees, adapt the names as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8023
follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8024
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8025
  Operations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8026
  bulkload -> rbt_bulkload
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8027
  del_from_left -> rbt_del_from_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8028
  del_from_right -> rbt_del_from_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8029
  del -> rbt_del
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8030
  delete -> rbt_delete
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8031
  ins -> rbt_ins
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8032
  insert -> rbt_insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8033
  insertw -> rbt_insert_with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8034
  insert_with_key -> rbt_insert_with_key
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8035
  map_entry -> rbt_map_entry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8036
  lookup -> rbt_lookup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8037
  sorted -> rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8038
  tree_greater -> rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8039
  tree_less -> rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8040
  tree_less_symbol -> rbt_less_symbol
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8041
  union -> rbt_union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8042
  union_with -> rbt_union_with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8043
  union_with_key -> rbt_union_with_key
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8044
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8045
  Lemmas:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8046
  balance_left_sorted -> balance_left_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8047
  balance_left_tree_greater -> balance_left_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8048
  balance_left_tree_less -> balance_left_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8049
  balance_right_sorted -> balance_right_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8050
  balance_right_tree_greater -> balance_right_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8051
  balance_right_tree_less -> balance_right_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8052
  balance_sorted -> balance_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8053
  balance_tree_greater -> balance_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8054
  balance_tree_less -> balance_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8055
  bulkload_is_rbt -> rbt_bulkload_is_rbt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8056
  combine_sorted -> combine_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8057
  combine_tree_greater -> combine_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8058
  combine_tree_less -> combine_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8059
  delete_in_tree -> rbt_delete_in_tree
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8060
  delete_is_rbt -> rbt_delete_is_rbt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8061
  del_from_left_tree_greater -> rbt_del_from_left_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8062
  del_from_left_tree_less -> rbt_del_from_left_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8063
  del_from_right_tree_greater -> rbt_del_from_right_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8064
  del_from_right_tree_less -> rbt_del_from_right_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8065
  del_in_tree -> rbt_del_in_tree
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8066
  del_inv1_inv2 -> rbt_del_inv1_inv2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8067
  del_sorted -> rbt_del_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8068
  del_tree_greater -> rbt_del_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8069
  del_tree_less -> rbt_del_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8070
  dom_lookup_Branch -> dom_rbt_lookup_Branch
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8071
  entries_lookup -> entries_rbt_lookup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8072
  finite_dom_lookup -> finite_dom_rbt_lookup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8073
  insert_sorted -> rbt_insert_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8074
  insertw_is_rbt -> rbt_insertw_is_rbt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8075
  insertwk_is_rbt -> rbt_insertwk_is_rbt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8076
  insertwk_sorted -> rbt_insertwk_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8077
  insertw_sorted -> rbt_insertw_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8078
  ins_sorted -> ins_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8079
  ins_tree_greater -> ins_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8080
  ins_tree_less -> ins_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8081
  is_rbt_sorted -> is_rbt_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8082
  lookup_balance -> rbt_lookup_balance
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8083
  lookup_bulkload -> rbt_lookup_rbt_bulkload
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8084
  lookup_delete -> rbt_lookup_rbt_delete
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8085
  lookup_Empty -> rbt_lookup_Empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8086
  lookup_from_in_tree -> rbt_lookup_from_in_tree
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8087
  lookup_in_tree -> rbt_lookup_in_tree
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8088
  lookup_ins -> rbt_lookup_ins
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8089
  lookup_insert -> rbt_lookup_rbt_insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8090
  lookup_insertw -> rbt_lookup_rbt_insertw
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8091
  lookup_insertwk -> rbt_lookup_rbt_insertwk
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8092
  lookup_keys -> rbt_lookup_keys
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8093
  lookup_map -> rbt_lookup_map
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8094
  lookup_map_entry -> rbt_lookup_rbt_map_entry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8095
  lookup_tree_greater -> rbt_lookup_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8096
  lookup_tree_less -> rbt_lookup_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8097
  lookup_union -> rbt_lookup_rbt_union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8098
  map_entry_color_of -> rbt_map_entry_color_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8099
  map_entry_inv1 -> rbt_map_entry_inv1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8100
  map_entry_inv2 -> rbt_map_entry_inv2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8101
  map_entry_is_rbt -> rbt_map_entry_is_rbt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8102
  map_entry_sorted -> rbt_map_entry_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8103
  map_entry_tree_greater -> rbt_map_entry_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8104
  map_entry_tree_less -> rbt_map_entry_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8105
  map_tree_greater -> map_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8106
  map_tree_less -> map_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8107
  map_sorted -> map_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8108
  paint_sorted -> paint_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8109
  paint_lookup -> paint_rbt_lookup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8110
  paint_tree_greater -> paint_rbt_greater
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8111
  paint_tree_less -> paint_rbt_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8112
  sorted_entries -> rbt_sorted_entries
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8113
  tree_greater_eq_trans -> rbt_greater_eq_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8114
  tree_greater_nit -> rbt_greater_nit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8115
  tree_greater_prop -> rbt_greater_prop
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8116
  tree_greater_simps -> rbt_greater_simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8117
  tree_greater_trans -> rbt_greater_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8118
  tree_less_eq_trans -> rbt_less_eq_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8119
  tree_less_nit -> rbt_less_nit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8120
  tree_less_prop -> rbt_less_prop
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8121
  tree_less_simps -> rbt_less_simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8122
  tree_less_trans -> rbt_less_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8123
  tree_ord_props -> rbt_ord_props
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8124
  union_Branch -> rbt_union_Branch
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8125
  union_is_rbt -> rbt_union_is_rbt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8126
  unionw_is_rbt -> rbt_unionw_is_rbt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8127
  unionwk_is_rbt -> rbt_unionwk_is_rbt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8128
  unionwk_sorted -> rbt_unionwk_rbt_sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8129
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8130
* Theory HOL/Library/Float: Floating point numbers are now defined as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8131
a subset of the real numbers.  All operations are defined using the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8132
lifing-framework and proofs use the transfer method.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8133
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8134
  Changed Operations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8135
  float_abs -> abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8136
  float_nprt -> nprt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8137
  float_pprt -> pprt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8138
  pow2 -> use powr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8139
  round_down -> float_round_down
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8140
  round_up -> float_round_up
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8141
  scale -> exponent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8142
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8143
  Removed Operations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8144
  ceiling_fl, lb_mult, lb_mod, ub_mult, ub_mod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8145
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8146
  Renamed Lemmas:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8147
  abs_float_def -> Float.compute_float_abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8148
  bitlen_ge0 -> bitlen_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8149
  bitlen.simps -> Float.compute_bitlen
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8150
  float_components -> Float_mantissa_exponent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8151
  float_divl.simps -> Float.compute_float_divl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8152
  float_divr.simps -> Float.compute_float_divr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8153
  float_eq_odd -> mult_powr_eq_mult_powr_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8154
  float_power -> real_of_float_power
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8155
  lapprox_posrat_def -> Float.compute_lapprox_posrat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8156
  lapprox_rat.simps -> Float.compute_lapprox_rat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8157
  le_float_def' -> Float.compute_float_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8158
  le_float_def -> less_eq_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8159
  less_float_def' -> Float.compute_float_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8160
  less_float_def -> less_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8161
  normfloat_def -> Float.compute_normfloat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8162
  normfloat_imp_odd_or_zero -> mantissa_not_dvd and mantissa_noteq_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8163
  normfloat -> normfloat_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8164
  normfloat_unique -> use normfloat_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8165
  number_of_float_Float -> Float.compute_float_numeral, Float.compute_float_neg_numeral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8166
  one_float_def -> Float.compute_float_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8167
  plus_float_def -> Float.compute_float_plus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8168
  rapprox_posrat_def -> Float.compute_rapprox_posrat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8169
  rapprox_rat.simps -> Float.compute_rapprox_rat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8170
  real_of_float_0 -> zero_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8171
  real_of_float_1 -> one_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8172
  real_of_float_abs -> abs_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8173
  real_of_float_add -> plus_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8174
  real_of_float_minus -> uminus_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8175
  real_of_float_mult -> times_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8176
  real_of_float_simp -> Float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8177
  real_of_float_sub -> minus_float.rep_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8178
  round_down.simps -> Float.compute_float_round_down
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8179
  round_up.simps -> Float.compute_float_round_up
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8180
  times_float_def -> Float.compute_float_times
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8181
  uminus_float_def -> Float.compute_float_uminus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8182
  zero_float_def -> Float.compute_float_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8183
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8184
  Lemmas not necessary anymore, use the transfer method:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8185
  bitlen_B0, bitlen_B1, bitlen_ge1, bitlen_Min, bitlen_Pls, float_divl,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8186
  float_divr, float_le_simp, float_less1_mantissa_bound,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8187
  float_less_simp, float_less_zero, float_le_zero,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8188
  float_pos_less1_e_neg, float_pos_m_pos, float_split, float_split2,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8189
  floor_pos_exp, lapprox_posrat, lapprox_posrat_bottom, lapprox_rat,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8190
  lapprox_rat_bottom, normalized_float, rapprox_posrat,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8191
  rapprox_posrat_le1, rapprox_rat, real_of_float_ge0_exp,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8192
  real_of_float_neg_exp, real_of_float_nge0_exp, round_down floor_fl,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8193
  round_up, zero_le_float, zero_less_float
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8194
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8195
* New theory HOL/Library/DAList provides an abstract type for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8196
association lists with distinct keys.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8197
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8198
* Session HOL/IMP: Added new theory of abstract interpretation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8199
annotated commands.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8200
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8201
* Session HOL-Import: Re-implementation from scratch is faster,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8202
simpler, and more scalable.  Requires a proof bundle, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8203
available as an external component.  Discontinued old (and mostly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8204
dead) Importer for HOL4 and HOL Light.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8205
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8206
* Session HOL-Word: Discontinued many redundant theorems specific to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8207
type 'a word. INCOMPATIBILITY, use the corresponding generic theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8208
instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8209
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8210
  word_sub_alt ~> word_sub_wi
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8211
  word_add_alt ~> word_add_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8212
  word_mult_alt ~> word_mult_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8213
  word_minus_alt ~> word_minus_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8214
  word_0_alt ~> word_0_wi
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8215
  word_1_alt ~> word_1_wi
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8216
  word_add_0 ~> add_0_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8217
  word_add_0_right ~> add_0_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8218
  word_mult_1 ~> mult_1_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8219
  word_mult_1_right ~> mult_1_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8220
  word_add_commute ~> add_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8221
  word_add_assoc ~> add_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8222
  word_add_left_commute ~> add_left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8223
  word_mult_commute ~> mult_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8224
  word_mult_assoc ~> mult_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8225
  word_mult_left_commute ~> mult_left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8226
  word_left_distrib ~> left_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8227
  word_right_distrib ~> right_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8228
  word_left_minus ~> left_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8229
  word_diff_0_right ~> diff_0_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8230
  word_diff_self ~> diff_self
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8231
  word_sub_def ~> diff_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8232
  word_diff_minus ~> diff_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8233
  word_add_ac ~> add_ac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8234
  word_mult_ac ~> mult_ac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8235
  word_plus_ac0 ~> add_0_left add_0_right add_ac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8236
  word_times_ac1 ~> mult_1_left mult_1_right mult_ac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8237
  word_order_trans ~> order_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8238
  word_order_refl ~> order_refl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8239
  word_order_antisym ~> order_antisym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8240
  word_order_linear ~> linorder_linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8241
  lenw1_zero_neq_one ~> zero_neq_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8242
  word_number_of_eq ~> number_of_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8243
  word_of_int_add_hom ~> wi_hom_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8244
  word_of_int_sub_hom ~> wi_hom_sub
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8245
  word_of_int_mult_hom ~> wi_hom_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8246
  word_of_int_minus_hom ~> wi_hom_neg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8247
  word_of_int_succ_hom ~> wi_hom_succ
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8248
  word_of_int_pred_hom ~> wi_hom_pred
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8249
  word_of_int_0_hom ~> word_0_wi
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8250
  word_of_int_1_hom ~> word_1_wi
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8251
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8252
* Session HOL-Word: New proof method "word_bitwise" for splitting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8253
machine word equalities and inequalities into logical circuits,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8254
defined in HOL/Word/WordBitwise.thy.  Supports addition, subtraction,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8255
multiplication, shifting by constants, bitwise operators and numeric
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8256
constants.  Requires fixed-length word types, not 'a word.  Solves
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8257
many standard word identities outright and converts more into first
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8258
order problems amenable to blast or similar.  See also examples in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8259
HOL/Word/Examples/WordExamples.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8260
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8261
* Session HOL-Probability: Introduced the type "'a measure" to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8262
represent measures, this replaces the records 'a algebra and 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8263
measure_space.  The locales based on subset_class now have two
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8264
locale-parameters the space \<Omega> and the set of measurable sets M.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8265
The product of probability spaces uses now the same constant as the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8266
finite product of sigma-finite measure spaces "PiM :: ('i => 'a)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8267
measure".  Most constants are defined now outside of locales and gain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8268
an additional parameter, like null_sets, almost_eventually or \<mu>'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8269
Measure space constructions for distributions and densities now got
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8270
their own constants distr and density.  Instead of using locales to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8271
describe measure spaces with a finite space, the measure count_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8272
and point_measure is introduced.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8273
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8274
  Renamed constants:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8275
  measure -> emeasure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8276
  finite_measure.\<mu>' -> measure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8277
  product_algebra_generator -> prod_algebra
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8278
  product_prob_space.emb -> prod_emb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8279
  product_prob_space.infprod_algebra -> PiM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8280
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8281
  Removed locales:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8282
  completeable_measure_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8283
  finite_measure_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8284
  finite_prob_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8285
  finite_product_finite_prob_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8286
  finite_product_sigma_algebra
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8287
  finite_sigma_algebra
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8288
  measure_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8289
  pair_finite_prob_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8290
  pair_finite_sigma_algebra
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8291
  pair_finite_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8292
  pair_sigma_algebra
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8293
  product_sigma_algebra
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8294
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8295
  Removed constants:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8296
  conditional_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8297
  distribution -> use distr measure, or distributed predicate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8298
  image_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8299
  joint_distribution -> use distr measure, or distributed predicate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8300
  pair_measure_generator
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8301
  product_prob_space.infprod_algebra -> use PiM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8302
  subvimage
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8303
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8304
  Replacement theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8305
  finite_additivity_sufficient -> ring_of_sets.countably_additiveI_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8306
  finite_measure.empty_measure -> measure_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8307
  finite_measure.finite_continuity_from_above -> finite_measure.finite_Lim_measure_decseq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8308
  finite_measure.finite_continuity_from_below -> finite_measure.finite_Lim_measure_incseq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8309
  finite_measure.finite_measure_countably_subadditive -> finite_measure.finite_measure_subadditive_countably
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8310
  finite_measure.finite_measure_eq -> finite_measure.emeasure_eq_measure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8311
  finite_measure.finite_measure -> finite_measure.emeasure_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8312
  finite_measure.finite_measure_finite_singleton -> finite_measure.finite_measure_eq_setsum_singleton
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8313
  finite_measure.positive_measure' -> measure_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8314
  finite_measure.real_measure -> finite_measure.emeasure_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8315
  finite_product_prob_space.finite_measure_times -> finite_product_prob_space.finite_measure_PiM_emb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8316
  finite_product_sigma_algebra.in_P -> sets_PiM_I_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8317
  finite_product_sigma_algebra.P_empty -> space_PiM_empty, sets_PiM_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8318
  information_space.conditional_entropy_eq -> information_space.conditional_entropy_simple_distributed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8319
  information_space.conditional_entropy_positive -> information_space.conditional_entropy_nonneg_simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8320
  information_space.conditional_mutual_information_eq_mutual_information -> information_space.conditional_mutual_information_eq_mutual_information_simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8321
  information_space.conditional_mutual_information_generic_positive -> information_space.conditional_mutual_information_nonneg_simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8322
  information_space.conditional_mutual_information_positive -> information_space.conditional_mutual_information_nonneg_simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8323
  information_space.entropy_commute -> information_space.entropy_commute_simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8324
  information_space.entropy_eq -> information_space.entropy_simple_distributed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8325
  information_space.entropy_generic_eq -> information_space.entropy_simple_distributed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8326
  information_space.entropy_positive -> information_space.entropy_nonneg_simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8327
  information_space.entropy_uniform_max -> information_space.entropy_uniform
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8328
  information_space.KL_eq_0_imp -> information_space.KL_eq_0_iff_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8329
  information_space.KL_eq_0 -> information_space.KL_same_eq_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8330
  information_space.KL_ge_0 -> information_space.KL_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8331
  information_space.mutual_information_eq -> information_space.mutual_information_simple_distributed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8332
  information_space.mutual_information_positive -> information_space.mutual_information_nonneg_simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8333
  Int_stable_cuboids -> Int_stable_atLeastAtMost
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8334
  Int_stable_product_algebra_generator -> positive_integral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8335
  measure_preserving -> equality "distr M N f = N" "f : measurable M N"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8336
  measure_space.additive -> emeasure_additive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8337
  measure_space.AE_iff_null_set -> AE_iff_null
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8338
  measure_space.almost_everywhere_def -> eventually_ae_filter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8339
  measure_space.almost_everywhere_vimage -> AE_distrD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8340
  measure_space.continuity_from_above -> INF_emeasure_decseq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8341
  measure_space.continuity_from_above_Lim -> Lim_emeasure_decseq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8342
  measure_space.continuity_from_below_Lim -> Lim_emeasure_incseq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8343
  measure_space.continuity_from_below -> SUP_emeasure_incseq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8344
  measure_space_density -> emeasure_density
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8345
  measure_space.density_is_absolutely_continuous -> absolutely_continuousI_density
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8346
  measure_space.integrable_vimage -> integrable_distr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8347
  measure_space.integral_translated_density -> integral_density
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8348
  measure_space.integral_vimage -> integral_distr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8349
  measure_space.measure_additive -> plus_emeasure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8350
  measure_space.measure_compl -> emeasure_compl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8351
  measure_space.measure_countable_increasing -> emeasure_countable_increasing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8352
  measure_space.measure_countably_subadditive -> emeasure_subadditive_countably
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8353
  measure_space.measure_decseq -> decseq_emeasure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8354
  measure_space.measure_Diff -> emeasure_Diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8355
  measure_space.measure_Diff_null_set -> emeasure_Diff_null_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8356
  measure_space.measure_eq_0 -> emeasure_eq_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8357
  measure_space.measure_finitely_subadditive -> emeasure_subadditive_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8358
  measure_space.measure_finite_singleton -> emeasure_eq_setsum_singleton
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8359
  measure_space.measure_incseq -> incseq_emeasure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8360
  measure_space.measure_insert -> emeasure_insert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8361
  measure_space.measure_mono -> emeasure_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8362
  measure_space.measure_not_negative -> emeasure_not_MInf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8363
  measure_space.measure_preserving_Int_stable -> measure_eqI_generator_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8364
  measure_space.measure_setsum -> setsum_emeasure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8365
  measure_space.measure_setsum_split -> setsum_emeasure_cover
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8366
  measure_space.measure_space_vimage -> emeasure_distr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8367
  measure_space.measure_subadditive_finite -> emeasure_subadditive_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8368
  measure_space.measure_subadditive -> subadditive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8369
  measure_space.measure_top -> emeasure_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8370
  measure_space.measure_UN_eq_0 -> emeasure_UN_eq_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8371
  measure_space.measure_Un_null_set -> emeasure_Un_null_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8372
  measure_space.positive_integral_translated_density -> positive_integral_density
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8373
  measure_space.positive_integral_vimage -> positive_integral_distr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8374
  measure_space.real_continuity_from_above -> Lim_measure_decseq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8375
  measure_space.real_continuity_from_below -> Lim_measure_incseq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8376
  measure_space.real_measure_countably_subadditive -> measure_subadditive_countably
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8377
  measure_space.real_measure_Diff -> measure_Diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8378
  measure_space.real_measure_finite_Union -> measure_finite_Union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8379
  measure_space.real_measure_setsum_singleton -> measure_eq_setsum_singleton
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8380
  measure_space.real_measure_subadditive -> measure_subadditive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8381
  measure_space.real_measure_Union -> measure_Union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8382
  measure_space.real_measure_UNION -> measure_UNION
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8383
  measure_space.simple_function_vimage -> simple_function_comp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8384
  measure_space.simple_integral_vimage -> simple_integral_distr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8385
  measure_space.simple_integral_vimage -> simple_integral_distr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8386
  measure_unique_Int_stable -> measure_eqI_generator_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8387
  measure_unique_Int_stable_vimage -> measure_eqI_generator_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8388
  pair_sigma_algebra.measurable_cut_fst -> sets_Pair1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8389
  pair_sigma_algebra.measurable_cut_snd -> sets_Pair2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8390
  pair_sigma_algebra.measurable_pair_image_fst -> measurable_Pair1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8391
  pair_sigma_algebra.measurable_pair_image_snd -> measurable_Pair2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8392
  pair_sigma_algebra.measurable_product_swap -> measurable_pair_swap_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8393
  pair_sigma_algebra.pair_sigma_algebra_measurable -> measurable_pair_swap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8394
  pair_sigma_algebra.pair_sigma_algebra_swap_measurable -> measurable_pair_swap'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8395
  pair_sigma_algebra.sets_swap -> sets_pair_swap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8396
  pair_sigma_finite.measure_cut_measurable_fst -> pair_sigma_finite.measurable_emeasure_Pair1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8397
  pair_sigma_finite.measure_cut_measurable_snd -> pair_sigma_finite.measurable_emeasure_Pair2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8398
  pair_sigma_finite.measure_preserving_swap -> pair_sigma_finite.distr_pair_swap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8399
  pair_sigma_finite.pair_measure_alt2 -> pair_sigma_finite.emeasure_pair_measure_alt2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8400
  pair_sigma_finite.pair_measure_alt -> pair_sigma_finite.emeasure_pair_measure_alt
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8401
  pair_sigma_finite.pair_measure_times -> pair_sigma_finite.emeasure_pair_measure_Times
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8402
  prob_space.indep_distribution_eq_measure -> prob_space.indep_vars_iff_distr_eq_PiM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8403
  prob_space.indep_var_distributionD -> prob_space.indep_var_distribution_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8404
  prob_space.measure_space_1 -> prob_space.emeasure_space_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8405
  prob_space.prob_space_vimage -> prob_space_distr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8406
  prob_space.random_variable_restrict -> measurable_restrict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8407
  prob_space_unique_Int_stable -> measure_eqI_prob_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8408
  product_algebraE -> prod_algebraE_all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8409
  product_algebra_generator_der -> prod_algebra_eq_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8410
  product_algebra_generator_into_space -> prod_algebra_sets_into_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8411
  product_algebraI -> sets_PiM_I_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8412
  product_measure_exists -> product_sigma_finite.sigma_finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8413
  product_prob_space.finite_index_eq_finite_product -> product_prob_space.sets_PiM_generator
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8414
  product_prob_space.finite_measure_infprod_emb_Pi -> product_prob_space.measure_PiM_emb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8415
  product_prob_space.infprod_spec -> product_prob_space.emeasure_PiM_emb_not_empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8416
  product_prob_space.measurable_component -> measurable_component_singleton
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8417
  product_prob_space.measurable_emb -> measurable_prod_emb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8418
  product_prob_space.measurable_into_infprod_algebra -> measurable_PiM_single
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8419
  product_prob_space.measurable_singleton_infprod -> measurable_component_singleton
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8420
  product_prob_space.measure_emb -> emeasure_prod_emb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8421
  product_prob_space.measure_preserving_restrict -> product_prob_space.distr_restrict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8422
  product_sigma_algebra.product_algebra_into_space -> space_closed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8423
  product_sigma_finite.measure_fold -> product_sigma_finite.distr_merge
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8424
  product_sigma_finite.measure_preserving_component_singelton -> product_sigma_finite.distr_singleton
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8425
  product_sigma_finite.measure_preserving_merge -> product_sigma_finite.distr_merge
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8426
  sequence_space.measure_infprod -> sequence_space.measure_PiM_countable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8427
  sets_product_algebra -> sets_PiM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8428
  sigma_algebra.measurable_sigma -> measurable_measure_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8429
  sigma_finite_measure.disjoint_sigma_finite -> sigma_finite_disjoint
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8430
  sigma_finite_measure.RN_deriv_vimage -> sigma_finite_measure.RN_deriv_distr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8431
  sigma_product_algebra_sigma_eq -> sigma_prod_algebra_sigma_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8432
  space_product_algebra -> space_PiM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8433
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8434
* Session HOL-TPTP: support to parse and import TPTP problems (all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8435
languages) into Isabelle/HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8436
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8437
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8438
*** FOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8439
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8440
* New "case_product" attribute (see HOL).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8441
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8442
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8443
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8444
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8445
* Greater support for structured proofs involving induction or case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8446
analysis.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8447
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8448
* Much greater use of mathematical symbols.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8449
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8450
* Removal of many ML theorem bindings.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8451
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8452
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8453
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8454
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8455
* Antiquotation @{keyword "name"} produces a parser for outer syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8456
from a minor keyword introduced via theory header declaration.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8457
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8458
* Antiquotation @{command_spec "name"} produces the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8459
Outer_Syntax.command_spec from a major keyword introduced via theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8460
header declaration; it can be passed to Outer_Syntax.command etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8461
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8462
* Local_Theory.define no longer hard-wires default theorem name
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8463
"foo_def", but retains the binding as given.  If that is Binding.empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8464
/ Attrib.empty_binding, the result is not registered as user-level
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8465
fact.  The Local_Theory.define_internal variant allows to specify a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8466
non-empty name (used for the foundation in the background theory),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8467
while omitting the fact binding in the user-context.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8468
INCOMPATIBILITY for derived definitional packages: need to specify
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8469
naming policy for primitive definitions more explicitly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8470
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8471
* Renamed Thm.capply to Thm.apply, and Thm.cabs to Thm.lambda in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8472
conformance with similar operations in structure Term and Logic.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8473
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8474
* Antiquotation @{attributes [...]} embeds attribute source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8475
representation into the ML text, which is particularly useful with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8476
declarations like Local_Theory.note.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8477
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8478
* Structure Proof_Context follows standard naming scheme.  Old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8479
ProofContext has been discontinued.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8480
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8481
* Refined Local_Theory.declaration {syntax, pervasive}, with subtle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8482
change of semantics: update is applied to auxiliary local theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8483
context as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8484
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8485
* Modernized some old-style infix operations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8486
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8487
  addeqcongs    ~> Simplifier.add_eqcong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8488
  deleqcongs    ~> Simplifier.del_eqcong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8489
  addcongs      ~> Simplifier.add_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8490
  delcongs      ~> Simplifier.del_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8491
  setmksimps    ~> Simplifier.set_mksimps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8492
  setmkcong     ~> Simplifier.set_mkcong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8493
  setmksym      ~> Simplifier.set_mksym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8494
  setmkeqTrue   ~> Simplifier.set_mkeqTrue
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8495
  settermless   ~> Simplifier.set_termless
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8496
  setsubgoaler  ~> Simplifier.set_subgoaler
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8497
  addsplits     ~> Splitter.add_split
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8498
  delsplits     ~> Splitter.del_split
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8499
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8500
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8501
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8502
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8503
* USER_HOME settings variable points to cross-platform user home
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8504
directory, which coincides with HOME on POSIX systems only.  Likewise,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8505
the Isabelle path specification "~" now expands to $USER_HOME, instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8506
of former $HOME.  A different default for USER_HOME may be set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8507
explicitly in shell environment, before Isabelle settings are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8508
evaluated.  Minor INCOMPATIBILITY: need to adapt Isabelle path where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8509
the generic user home was intended.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8510
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8511
* ISABELLE_HOME_WINDOWS refers to ISABELLE_HOME in windows file name
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8512
notation, which is useful for the jEdit file browser, for example.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8513
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8514
* ISABELLE_JDK_HOME settings variable points to JDK with javac and jar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8515
(not just JRE).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8516
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8517
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8518
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8519
New in Isabelle2011-1 (October 2011)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8520
------------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8521
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8522
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8523
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8524
* Improved Isabelle/jEdit Prover IDE (PIDE), which can be invoked as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8525
"isabelle jedit" or "ISABELLE_HOME/Isabelle" on the command line.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8526
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8527
  - Management of multiple theory files directly from the editor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8528
    buffer store -- bypassing the file-system (no requirement to save
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8529
    files for checking).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8531
  - Markup of formal entities within the text buffer, with semantic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8532
    highlighting, tooltips and hyperlinks to jump to defining source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8533
    positions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8534
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8535
  - Improved text rendering, with sub/superscripts in the source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8536
    buffer (including support for copy/paste wrt. output panel, HTML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8537
    theory output and other non-Isabelle text boxes).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8538
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8539
  - Refined scheduling of proof checking and printing of results,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8540
    based on interactive editor view.  (Note: jEdit folding and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8541
    narrowing allows to restrict buffer perspectives explicitly.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8542
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8543
  - Reduced CPU performance requirements, usable on machines with few
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8544
    cores.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8545
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8546
  - Reduced memory requirements due to pruning of unused document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8547
    versions (garbage collection).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8548
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8549
See also ~~/src/Tools/jEdit/README.html for further information,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8550
including some remaining limitations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8551
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8552
* Theory loader: source files are exclusively located via the master
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8553
directory of each theory node (where the .thy file itself resides).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8554
The global load path (such as src/HOL/Library) has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8555
Note that the path element ~~ may be used to reference theories in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8556
Isabelle home folder -- for instance, "~~/src/HOL/Library/FuncSet".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8557
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8558
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8559
* Theory loader: source files are identified by content via SHA1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8560
digests.  Discontinued former path/modtime identification and optional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8561
ISABELLE_FILE_IDENT plugin scripts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8562
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8563
* Parallelization of nested Isar proofs is subject to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8564
Goal.parallel_proofs_threshold (default 100).  See also isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8565
usedir option -Q.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8566
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8567
* Name space: former unsynchronized references are now proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8568
configuration options, with more conventional names:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8569
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8570
  long_names   ~> names_long
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8571
  short_names  ~> names_short
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8572
  unique_names ~> names_unique
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8573
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8574
Minor INCOMPATIBILITY, need to declare options in context like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8575
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8576
  declare [[names_unique = false]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8577
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8578
* Literal facts `prop` may contain dummy patterns, e.g. `_ = _`.  Note
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8579
that the result needs to be unique, which means fact specifications
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8580
may have to be refined after enriching a proof context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8581
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8582
* Attribute "case_names" has been refined: the assumptions in each case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8583
can be named now by following the case name with [name1 name2 ...].
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8584
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8585
* Isabelle/Isar reference manual has been updated and extended:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8586
  - "Synopsis" provides a catalog of main Isar language concepts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8587
  - Formal references in syntax diagrams, via @{rail} antiquotation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8588
  - Updated material from classic "ref" manual, notably about
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8589
    "Classical Reasoner".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8590
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8591
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8592
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8593
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8594
* Class bot and top require underlying partial order rather than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8595
preorder: uniqueness of bot and top is guaranteed.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8596
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8597
* Class complete_lattice: generalized a couple of lemmas from sets;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8598
generalized theorems INF_cong and SUP_cong.  New type classes for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8599
complete boolean algebras and complete linear orders.  Lemmas
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8600
Inf_less_iff, less_Sup_iff, INF_less_iff, less_SUP_iff now reside in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8601
class complete_linorder.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8602
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8603
Changed proposition of lemmas Inf_bool_def, Sup_bool_def, Inf_fun_def,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8604
Sup_fun_def, Inf_apply, Sup_apply.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8605
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8606
Removed redundant lemmas (the right hand side gives hints how to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8607
replace them for (metis ...), or (simp only: ...) proofs):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8608
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8609
  Inf_singleton ~> Inf_insert [where A="{}", unfolded Inf_empty inf_top_right]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8610
  Sup_singleton ~> Sup_insert [where A="{}", unfolded Sup_empty sup_bot_right]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8611
  Inf_binary ~> Inf_insert, Inf_empty, and inf_top_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8612
  Sup_binary ~> Sup_insert, Sup_empty, and sup_bot_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8613
  Int_eq_Inter ~> Inf_insert, Inf_empty, and inf_top_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8614
  Un_eq_Union ~> Sup_insert, Sup_empty, and sup_bot_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8615
  Inter_def ~> INF_def, image_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8616
  Union_def ~> SUP_def, image_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8617
  INT_eq ~> INF_def, and image_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8618
  UN_eq ~> SUP_def, and image_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8619
  INF_subset ~> INF_superset_mono [OF _ order_refl]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8620
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8621
More consistent and comprehensive names:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8622
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8623
  INTER_eq_Inter_image ~> INF_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8624
  UNION_eq_Union_image ~> SUP_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8625
  INFI_def ~> INF_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8626
  SUPR_def ~> SUP_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8627
  INF_leI ~> INF_lower
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8628
  INF_leI2 ~> INF_lower2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8629
  le_INFI ~> INF_greatest
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8630
  le_SUPI ~> SUP_upper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8631
  le_SUPI2 ~> SUP_upper2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8632
  SUP_leI ~> SUP_least
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8633
  INFI_bool_eq ~> INF_bool_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8634
  SUPR_bool_eq ~> SUP_bool_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8635
  INFI_apply ~> INF_apply
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8636
  SUPR_apply ~> SUP_apply
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8637
  INTER_def ~> INTER_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8638
  UNION_def ~> UNION_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8639
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8640
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8641
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8642
* Renamed theory Complete_Lattice to Complete_Lattices.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8643
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8644
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8645
* Theory Complete_Lattices: lemmas Inf_eq_top_iff, INF_eq_top_iff,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8646
INF_image, Inf_insert, INF_top, Inf_top_conv, INF_top_conv, SUP_bot,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8647
Sup_bot_conv, SUP_bot_conv, Sup_eq_top_iff, SUP_eq_top_iff, SUP_image,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8648
Sup_insert are now declared as [simp].  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8649
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8650
* Theory Lattice: lemmas compl_inf_bot, compl_le_comp_iff,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8651
compl_sup_top, inf_idem, inf_left_idem, inf_sup_absorb, sup_idem,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8652
sup_inf_absob, sup_left_idem are now declared as [simp].  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8653
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8654
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8655
* Added syntactic classes "inf" and "sup" for the respective
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8656
constants.  INCOMPATIBILITY: Changes in the argument order of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8657
(mostly internal) locale predicates for some derived classes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8658
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8659
* Theorem collections ball_simps and bex_simps do not contain theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8660
referring to UNION any longer; these have been moved to collection
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8661
UN_ball_bex_simps.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8662
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8663
* Theory Archimedean_Field: floor now is defined as parameter of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8664
separate type class floor_ceiling.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8665
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8666
* Theory Finite_Set: more coherent development of fold_set locales:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8667
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8668
    locale fun_left_comm ~> locale comp_fun_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8669
    locale fun_left_comm_idem ~> locale comp_fun_idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8670
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8671
Both use point-free characterization; interpretation proofs may need
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8672
adjustment.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8673
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8674
* Theory Limits: Type "'a net" has been renamed to "'a filter", in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8675
accordance with standard mathematical terminology. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8676
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8677
* Theory Complex_Main: The locale interpretations for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8678
bounded_linear and bounded_bilinear locales have been removed, in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8679
order to reduce the number of duplicate lemmas. Users must use the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8680
original names for distributivity theorems, potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8681
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8682
  divide.add ~> add_divide_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8683
  divide.diff ~> diff_divide_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8684
  divide.setsum ~> setsum_divide_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8685
  mult.add_right ~> right_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8686
  mult.diff_right ~> right_diff_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8687
  mult_right.setsum ~> setsum_right_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8688
  mult_left.diff ~> left_diff_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8689
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8690
* Theory Complex_Main: Several redundant theorems have been removed or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8691
replaced by more general versions. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8692
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8693
  real_diff_def ~> minus_real_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8694
  real_divide_def ~> divide_real_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8695
  real_less_def ~> less_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8696
  real_abs_def ~> abs_real_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8697
  real_sgn_def ~> sgn_real_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8698
  real_mult_commute ~> mult_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8699
  real_mult_assoc ~> mult_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8700
  real_mult_1 ~> mult_1_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8701
  real_add_mult_distrib ~> left_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8702
  real_zero_not_eq_one ~> zero_neq_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8703
  real_mult_inverse_left ~> left_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8704
  INVERSE_ZERO ~> inverse_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8705
  real_le_refl ~> order_refl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8706
  real_le_antisym ~> order_antisym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8707
  real_le_trans ~> order_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8708
  real_le_linear ~> linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8709
  real_le_eq_diff ~> le_iff_diff_le_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8710
  real_add_left_mono ~> add_left_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8711
  real_mult_order ~> mult_pos_pos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8712
  real_mult_less_mono2 ~> mult_strict_left_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8713
  real_of_int_real_of_nat ~> real_of_int_of_nat_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8714
  real_0_le_divide_iff ~> zero_le_divide_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8715
  realpow_two_disj ~> power2_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8716
  real_squared_diff_one_factored ~> square_diff_one_factored
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8717
  realpow_two_diff ~> square_diff_square_factored
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8718
  reals_complete2 ~> complete_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8719
  real_sum_squared_expand ~> power2_sum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8720
  exp_ln_eq ~> ln_unique
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8721
  expi_add ~> exp_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8722
  expi_zero ~> exp_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8723
  lemma_DERIV_subst ~> DERIV_cong
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8724
  LIMSEQ_Zfun_iff ~> tendsto_Zfun_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8725
  LIMSEQ_const ~> tendsto_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8726
  LIMSEQ_norm ~> tendsto_norm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8727
  LIMSEQ_add ~> tendsto_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8728
  LIMSEQ_minus ~> tendsto_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8729
  LIMSEQ_minus_cancel ~> tendsto_minus_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8730
  LIMSEQ_diff ~> tendsto_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8731
  bounded_linear.LIMSEQ ~> bounded_linear.tendsto
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8732
  bounded_bilinear.LIMSEQ ~> bounded_bilinear.tendsto
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8733
  LIMSEQ_mult ~> tendsto_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8734
  LIMSEQ_inverse ~> tendsto_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8735
  LIMSEQ_divide ~> tendsto_divide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8736
  LIMSEQ_pow ~> tendsto_power
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8737
  LIMSEQ_setsum ~> tendsto_setsum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8738
  LIMSEQ_setprod ~> tendsto_setprod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8739
  LIMSEQ_norm_zero ~> tendsto_norm_zero_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8740
  LIMSEQ_rabs_zero ~> tendsto_rabs_zero_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8741
  LIMSEQ_imp_rabs ~> tendsto_rabs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8742
  LIMSEQ_add_minus ~> tendsto_add [OF _ tendsto_minus]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8743
  LIMSEQ_add_const ~> tendsto_add [OF _ tendsto_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8744
  LIMSEQ_diff_const ~> tendsto_diff [OF _ tendsto_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8745
  LIMSEQ_Complex ~> tendsto_Complex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8746
  LIM_ident ~> tendsto_ident_at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8747
  LIM_const ~> tendsto_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8748
  LIM_add ~> tendsto_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8749
  LIM_add_zero ~> tendsto_add_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8750
  LIM_minus ~> tendsto_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8751
  LIM_diff ~> tendsto_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8752
  LIM_norm ~> tendsto_norm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8753
  LIM_norm_zero ~> tendsto_norm_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8754
  LIM_norm_zero_cancel ~> tendsto_norm_zero_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8755
  LIM_norm_zero_iff ~> tendsto_norm_zero_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8756
  LIM_rabs ~> tendsto_rabs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8757
  LIM_rabs_zero ~> tendsto_rabs_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8758
  LIM_rabs_zero_cancel ~> tendsto_rabs_zero_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8759
  LIM_rabs_zero_iff ~> tendsto_rabs_zero_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8760
  LIM_compose ~> tendsto_compose
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8761
  LIM_mult ~> tendsto_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8762
  LIM_scaleR ~> tendsto_scaleR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8763
  LIM_of_real ~> tendsto_of_real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8764
  LIM_power ~> tendsto_power
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8765
  LIM_inverse ~> tendsto_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8766
  LIM_sgn ~> tendsto_sgn
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8767
  isCont_LIM_compose ~> isCont_tendsto_compose
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8768
  bounded_linear.LIM ~> bounded_linear.tendsto
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8769
  bounded_linear.LIM_zero ~> bounded_linear.tendsto_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8770
  bounded_bilinear.LIM ~> bounded_bilinear.tendsto
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8771
  bounded_bilinear.LIM_prod_zero ~> bounded_bilinear.tendsto_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8772
  bounded_bilinear.LIM_left_zero ~> bounded_bilinear.tendsto_left_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8773
  bounded_bilinear.LIM_right_zero ~> bounded_bilinear.tendsto_right_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8774
  LIM_inverse_fun ~> tendsto_inverse [OF tendsto_ident_at]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8775
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8776
* Theory Complex_Main: The definition of infinite series was
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8777
generalized.  Now it is defined on the type class {topological_space,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8778
comm_monoid_add}.  Hence it is useable also for extended real numbers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8779
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8780
* Theory Complex_Main: The complex exponential function "expi" is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8781
a type-constrained abbreviation for "exp :: complex => complex"; thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8782
several polymorphic lemmas about "exp" are now applicable to "expi".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8783
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8784
* Code generation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8785
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8786
  - Theory Library/Code_Char_ord provides native ordering of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8787
    characters in the target language.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8788
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8789
  - Commands code_module and code_library are legacy, use export_code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8790
    instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8791
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8792
  - Method "evaluation" is legacy, use method "eval" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8793
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8794
  - Legacy evaluator "SML" is deactivated by default.  May be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8795
    reactivated by the following theory command:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8796
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8797
      setup {* Value.add_evaluator ("SML", Codegen.eval_term) *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8798
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8799
* Declare ext [intro] by default.  Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8800
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8801
* New proof method "induction" that gives induction hypotheses the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8802
name "IH", thus distinguishing them from further hypotheses that come
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8803
from rule induction.  The latter are still called "hyps".  Method
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8804
"induction" is a thin wrapper around "induct" and follows the same
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8805
syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8806
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8807
* Method "fastsimp" has been renamed to "fastforce", but "fastsimp" is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8808
still available as a legacy feature for some time.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8809
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8810
* Nitpick:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8811
  - Added "need" and "total_consts" options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8812
  - Reintroduced "show_skolems" option by popular demand.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8813
  - Renamed attribute: nitpick_def ~> nitpick_unfold.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8814
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8815
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8816
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8817
  - Use quasi-sound (and efficient) translations by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8818
  - Added support for the following provers: E-ToFoF, LEO-II,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8819
    Satallax, SNARK, Waldmeister, and Z3 with TPTP syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8820
  - Automatically preplay and minimize proofs before showing them if
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8821
    this can be done within reasonable time.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8822
  - sledgehammer available_provers ~> sledgehammer supported_provers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8823
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8824
  - Added "preplay_timeout", "slicing", "type_enc", "sound",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8825
    "max_mono_iters", and "max_new_mono_instances" options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8826
  - Removed "explicit_apply" and "full_types" options as well as "Full
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8827
    Types" Proof General menu item. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8828
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8829
* Metis:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8830
  - Removed "metisF" -- use "metis" instead. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8831
  - Obsoleted "metisFT" -- use "metis (full_types)" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8832
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8833
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8834
* Command 'try':
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8835
  - Renamed 'try_methods' and added "simp:", "intro:", "dest:", and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8836
    "elim:" options. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8837
  - Introduced 'try' that not only runs 'try_methods' but also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8838
    'solve_direct', 'sledgehammer', 'quickcheck', and 'nitpick'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8839
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8840
* Quickcheck:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8841
  - Added "eval" option to evaluate terms for the found counterexample
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8842
    (currently only supported by the default (exhaustive) tester).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8843
  - Added post-processing of terms to obtain readable counterexamples
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8844
    (currently only supported by the default (exhaustive) tester).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8845
  - New counterexample generator quickcheck[narrowing] enables
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8846
    narrowing-based testing.  Requires the Glasgow Haskell compiler
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8847
    with its installation location defined in the Isabelle settings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8848
    environment as ISABELLE_GHC.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8849
  - Removed quickcheck tester "SML" based on the SML code generator
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8850
    (formly in HOL/Library).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8851
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8852
* Function package: discontinued option "tailrec".  INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8853
use 'partial_function' instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8854
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8855
* Theory Library/Extended_Reals replaces now the positive extended
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8856
reals found in probability theory. This file is extended by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8857
Multivariate_Analysis/Extended_Real_Limits.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8858
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8859
* Theory Library/Old_Recdef: old 'recdef' package has been moved here,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8860
from where it must be imported explicitly if it is really required.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8861
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8862
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8863
* Theory Library/Wfrec: well-founded recursion combinator "wfrec" has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8864
been moved here.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8865
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8866
* Theory Library/Saturated provides type of numbers with saturated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8867
arithmetic.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8868
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8869
* Theory Library/Product_Lattice defines a pointwise ordering for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8870
product type 'a * 'b, and provides instance proofs for various order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8871
and lattice type classes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8872
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8873
* Theory Library/Countable now provides the "countable_datatype" proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8874
method for proving "countable" class instances for datatypes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8875
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8876
* Theory Library/Cset_Monad allows do notation for computable sets
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8877
(cset) via the generic monad ad-hoc overloading facility.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8878
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8879
* Library: Theories of common data structures are split into theories
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8880
for implementation, an invariant-ensuring type, and connection to an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8881
abstract type. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8882
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8883
  - RBT is split into RBT and RBT_Mapping.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8884
  - AssocList is split and renamed into AList and AList_Mapping.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8885
  - DList is split into DList_Impl, DList, and DList_Cset.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8886
  - Cset is split into Cset and List_Cset.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8887
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8888
* Theory Library/Nat_Infinity has been renamed to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8889
Library/Extended_Nat, with name changes of the following types and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8890
constants:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8891
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8892
  type inat   ~> type enat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8893
  Fin         ~> enat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8894
  Infty       ~> infinity (overloaded)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8895
  iSuc        ~> eSuc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8896
  the_Fin     ~> the_enat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8897
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8898
Every theorem name containing "inat", "Fin", "Infty", or "iSuc" has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8899
been renamed accordingly. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8900
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8901
* Session Multivariate_Analysis: The euclidean_space type class now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8902
fixes a constant "Basis :: 'a set" consisting of the standard
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8903
orthonormal basis for the type. Users now have the option of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8904
quantifying over this set instead of using the "basis" function, e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8905
"ALL x:Basis. P x" vs "ALL i<DIM('a). P (basis i)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8906
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8907
* Session Multivariate_Analysis: Type "('a, 'b) cart" has been renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8908
to "('a, 'b) vec" (the syntax "'a ^ 'b" remains unaffected). Constants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8909
"Cart_nth" and "Cart_lambda" have been respectively renamed to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8910
"vec_nth" and "vec_lambda"; theorems mentioning those names have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8911
changed to match. Definition theorems for overloaded constants now use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8912
the standard "foo_vec_def" naming scheme. A few other theorems have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8913
been renamed as follows (INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8914
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8915
  Cart_eq          ~> vec_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8916
  dist_nth_le_cart ~> dist_vec_nth_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8917
  tendsto_vector   ~> vec_tendstoI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8918
  Cauchy_vector    ~> vec_CauchyI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8919
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8920
* Session Multivariate_Analysis: Several duplicate theorems have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8921
removed, and other theorems have been renamed or replaced with more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8922
general versions. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8924
  finite_choice ~> finite_set_choice
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8925
  eventually_conjI ~> eventually_conj
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8926
  eventually_and ~> eventually_conj_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8927
  eventually_false ~> eventually_False
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8928
  setsum_norm ~> norm_setsum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8929
  Lim_sequentially ~> LIMSEQ_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8930
  Lim_ident_at ~> LIM_ident
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8931
  Lim_const ~> tendsto_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8932
  Lim_cmul ~> tendsto_scaleR [OF tendsto_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8933
  Lim_neg ~> tendsto_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8934
  Lim_add ~> tendsto_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8935
  Lim_sub ~> tendsto_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8936
  Lim_mul ~> tendsto_scaleR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8937
  Lim_vmul ~> tendsto_scaleR [OF _ tendsto_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8938
  Lim_null_norm ~> tendsto_norm_zero_iff [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8939
  Lim_linear ~> bounded_linear.tendsto
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8940
  Lim_component ~> tendsto_euclidean_component
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8941
  Lim_component_cart ~> tendsto_vec_nth
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8942
  Lim_inner ~> tendsto_inner [OF tendsto_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8943
  dot_lsum ~> inner_setsum_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8944
  dot_rsum ~> inner_setsum_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8945
  continuous_cmul ~> continuous_scaleR [OF continuous_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8946
  continuous_neg ~> continuous_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8947
  continuous_sub ~> continuous_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8948
  continuous_vmul ~> continuous_scaleR [OF _ continuous_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8949
  continuous_mul ~> continuous_scaleR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8950
  continuous_inv ~> continuous_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8951
  continuous_at_within_inv ~> continuous_at_within_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8952
  continuous_at_inv ~> continuous_at_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8953
  continuous_at_norm ~> continuous_norm [OF continuous_at_id]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8954
  continuous_at_infnorm ~> continuous_infnorm [OF continuous_at_id]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8955
  continuous_at_component ~> continuous_component [OF continuous_at_id]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8956
  continuous_on_neg ~> continuous_on_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8957
  continuous_on_sub ~> continuous_on_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8958
  continuous_on_cmul ~> continuous_on_scaleR [OF continuous_on_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8959
  continuous_on_vmul ~> continuous_on_scaleR [OF _ continuous_on_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8960
  continuous_on_mul ~> continuous_on_scaleR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8961
  continuous_on_mul_real ~> continuous_on_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8962
  continuous_on_inner ~> continuous_on_inner [OF continuous_on_const]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8963
  continuous_on_norm ~> continuous_on_norm [OF continuous_on_id]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8964
  continuous_on_inverse ~> continuous_on_inv
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8965
  uniformly_continuous_on_neg ~> uniformly_continuous_on_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8966
  uniformly_continuous_on_sub ~> uniformly_continuous_on_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8967
  subset_interior ~> interior_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8968
  subset_closure ~> closure_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8969
  closure_univ ~> closure_UNIV
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8970
  real_arch_lt ~> reals_Archimedean2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8971
  real_arch ~> reals_Archimedean3
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8972
  real_abs_norm ~> abs_norm_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8973
  real_abs_sub_norm ~> norm_triangle_ineq3
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8974
  norm_cauchy_schwarz_abs ~> Cauchy_Schwarz_ineq2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8975
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8976
* Session HOL-Probability:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8977
  - Caratheodory's extension lemma is now proved for ring_of_sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8978
  - Infinite products of probability measures are now available.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8979
  - Sigma closure is independent, if the generator is independent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8980
  - Use extended reals instead of positive extended
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8981
    reals. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8982
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8983
* Session HOLCF: Discontinued legacy theorem names, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8984
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8985
  expand_fun_below ~> fun_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8986
  below_fun_ext ~> fun_belowI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8987
  expand_cfun_eq ~> cfun_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8988
  ext_cfun ~> cfun_eqI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8989
  expand_cfun_below ~> cfun_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8990
  below_cfun_ext ~> cfun_belowI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8991
  monofun_fun_fun ~> fun_belowD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8992
  monofun_fun_arg ~> monofunE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8993
  monofun_lub_fun ~> adm_monofun [THEN admD]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8994
  cont_lub_fun ~> adm_cont [THEN admD]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8995
  cont2cont_Rep_CFun ~> cont2cont_APP
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8996
  cont_Rep_CFun_app ~> cont_APP_app
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8997
  cont_Rep_CFun_app_app ~> cont_APP_app_app
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8998
  cont_cfun_fun ~> cont_Rep_cfun1 [THEN contE]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  8999
  cont_cfun_arg ~> cont_Rep_cfun2 [THEN contE]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9000
  contlub_cfun ~> lub_APP [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9001
  contlub_LAM ~> lub_LAM [symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9002
  thelubI ~> lub_eqI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9003
  UU_I ~> bottomI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9004
  lift_distinct1 ~> lift.distinct(1)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9005
  lift_distinct2 ~> lift.distinct(2)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9006
  Def_not_UU ~> lift.distinct(2)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9007
  Def_inject ~> lift.inject
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9008
  below_UU_iff ~> below_bottom_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9009
  eq_UU_iff ~> eq_bottom_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9010
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9011
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9012
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9013
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9014
* Antiquotation @{rail} layouts railroad syntax diagrams, see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9015
isar-ref manual, both for description and actual application of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9016
same.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9017
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9018
* Antiquotation @{value} evaluates the given term and presents its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9019
result.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9020
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9021
* Antiquotations: term style "isub" provides ad-hoc conversion of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9022
variables x1, y23 into subscripted form x\<^isub>1,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9023
y\<^isub>2\<^isub>3.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9024
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9025
* Predefined LaTeX macros for Isabelle symbols \<bind> and \<then>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9026
(e.g. see ~~/src/HOL/Library/Monad_Syntax.thy).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9027
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9028
* Localized \isabellestyle switch can be used within blocks or groups
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9029
like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9030
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9031
  \isabellestyle{it}  %preferred default
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9032
  {\isabellestylett @{text "typewriter stuff"}}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9033
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9034
* Discontinued special treatment of hard tabulators.  Implicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9035
tab-width is now defined as 1.  Potential INCOMPATIBILITY for visual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9036
layouts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9037
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9038
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9039
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9040
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9041
* The inner syntax of sort/type/term/prop supports inlined YXML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9042
representations within quoted string tokens.  By encoding logical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9043
entities via Term_XML (in ML or Scala) concrete syntax can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9044
bypassed, which is particularly useful for producing bits of text
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9045
under external program control.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9046
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9047
* Antiquotations for ML and document preparation are managed as theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9048
data, which requires explicit setup.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9049
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9050
* Isabelle_Process.is_active allows tools to check if the official
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9051
process wrapper is running (Isabelle/Scala/jEdit) or the old TTY loop
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9052
(better known as Proof General).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9053
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9054
* Structure Proof_Context follows standard naming scheme.  Old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9055
ProofContext is still available for some time as legacy alias.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9056
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9057
* Structure Timing provides various operations for timing; supersedes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9058
former start_timing/end_timing etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9059
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9060
* Path.print is the official way to show file-system paths to users
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9061
(including quotes etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9062
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9063
* Inner syntax: identifiers in parse trees of generic categories
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9064
"logic", "aprop", "idt" etc. carry position information (disguised as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9065
type constraints).  Occasional INCOMPATIBILITY with non-compliant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9066
translations that choke on unexpected type constraints.  Positions can
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9067
be stripped in ML translations via Syntax.strip_positions /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9068
Syntax.strip_positions_ast, or via the syntax constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9069
"_strip_positions" within parse trees.  As last resort, positions can
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9070
be disabled via the configuration option Syntax.positions, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9071
called "syntax_positions" in Isar attribute syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9072
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9073
* Discontinued special status of various ML structures that contribute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9074
to structure Syntax (Ast, Lexicon, Mixfix, Parser, Printer etc.): less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9075
pervasive content, no inclusion in structure Syntax.  INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9076
refer directly to Ast.Constant, Lexicon.is_identifier,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9077
Syntax_Trans.mk_binder_tr etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9078
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9079
* Typed print translation: discontinued show_sorts argument, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9080
already available via context of "advanced" translation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9081
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9082
* Refined PARALLEL_GOALS tactical: degrades gracefully for schematic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9083
goal states; body tactic needs to address all subgoals uniformly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9084
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9085
* Slightly more special eq_list/eq_set, with shortcut involving
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9086
pointer equality (assumes that eq relation is reflexive).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9088
* Classical tactics use proper Proof.context instead of historic types
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9089
claset/clasimpset.  Old-style declarations like addIs, addEs, addDs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9090
operate directly on Proof.context.  Raw type claset retains its use as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9091
snapshot of the classical context, which can be recovered via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9092
(put_claset HOL_cs) etc.  Type clasimpset has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9093
INCOMPATIBILITY, classical tactics and derived proof methods require
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9094
proper Proof.context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9095
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9096
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9097
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9098
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9099
* Discontinued support for Poly/ML 5.2, which was the last version
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9100
without proper multithreading and TimeLimit implementation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9101
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9102
* Discontinued old lib/scripts/polyml-platform, which has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9103
obsolete since Isabelle2009-2.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9104
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9105
* Various optional external tools are referenced more robustly and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9106
uniformly by explicit Isabelle settings as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9107
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9108
  ISABELLE_CSDP   (formerly CSDP_EXE)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9109
  ISABELLE_GHC    (formerly EXEC_GHC or GHC_PATH)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9110
  ISABELLE_OCAML  (formerly EXEC_OCAML)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9111
  ISABELLE_SWIPL  (formerly EXEC_SWIPL)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9112
  ISABELLE_YAP    (formerly EXEC_YAP)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9113
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9114
Note that automated detection from the file-system or search path has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9115
been discontinued.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9116
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9117
* Scala layer provides JVM method invocation service for static
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9118
methods of type (String)String, see Invoke_Scala.method in ML.  For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9119
example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9120
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9121
  Invoke_Scala.method "java.lang.System.getProperty" "java.home"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9122
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9123
Together with YXML.string_of_body/parse_body and XML.Encode/Decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9124
this allows to pass structured values between ML and Scala.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9125
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9126
* The IsabelleText fonts includes some further glyphs to support the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9127
Prover IDE.  Potential INCOMPATIBILITY: users who happen to have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9128
installed a local copy (which is normally *not* required) need to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9129
delete or update it from ~~/lib/fonts/.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9130
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9131
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9132
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9133
New in Isabelle2011 (January 2011)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9134
----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9135
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9136
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9137
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9138
* Experimental Prover IDE based on Isabelle/Scala and jEdit (see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9139
src/Tools/jEdit).  This also serves as IDE for Isabelle/ML, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9140
useful tooltips and hyperlinks produced from its static analysis.  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9141
bundled component provides an executable Isabelle tool that can be run
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9142
like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9143
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9144
  Isabelle2011/bin/isabelle jedit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9145
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9146
* Significantly improved Isabelle/Isar implementation manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9147
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9148
* System settings: ISABELLE_HOME_USER now includes ISABELLE_IDENTIFIER
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9149
(and thus refers to something like $HOME/.isabelle/Isabelle2011),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9150
while the default heap location within that directory lacks that extra
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9151
suffix.  This isolates multiple Isabelle installations from each
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9152
other, avoiding problems with old settings in new versions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9153
INCOMPATIBILITY, need to copy/upgrade old user settings manually.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9154
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9155
* Source files are always encoded as UTF-8, instead of old-fashioned
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9156
ISO-Latin-1.  INCOMPATIBILITY.  Isabelle LaTeX documents might require
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9157
the following package declarations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9158
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9159
  \usepackage[utf8]{inputenc}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9160
  \usepackage{textcomp}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9161
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9162
* Explicit treatment of UTF-8 sequences as Isabelle symbols, such that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9163
a Unicode character is treated as a single symbol, not a sequence of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9164
non-ASCII bytes as before.  Since Isabelle/ML string literals may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9165
contain symbols without further backslash escapes, Unicode can now be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9166
used here as well.  Recall that Symbol.explode in ML provides a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9167
consistent view on symbols, while raw explode (or String.explode)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9168
merely give a byte-oriented representation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9169
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9170
* Theory loader: source files are primarily located via the master
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9171
directory of each theory node (where the .thy file itself resides).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9172
The global load path is still partially available as legacy feature.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9173
Minor INCOMPATIBILITY due to subtle change in file lookup: use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9174
explicit paths, relatively to the theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9175
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9176
* Special treatment of ML file names has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9177
Historically, optional extensions .ML or .sml were added on demand --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9178
at the cost of clarity of file dependencies.  Recall that Isabelle/ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9179
files exclusively use the .ML extension.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9180
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9181
* Various options that affect pretty printing etc. are now properly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9182
handled within the context via configuration options, instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9183
unsynchronized references or print modes.  There are both ML Config.T
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9184
entities and Isar declaration attributes to access these.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9185
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9186
  ML (Config.T)                 Isar (attribute)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9187
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9188
  eta_contract                  eta_contract
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9189
  show_brackets                 show_brackets
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9190
  show_sorts                    show_sorts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9191
  show_types                    show_types
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9192
  show_question_marks           show_question_marks
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9193
  show_consts                   show_consts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9194
  show_abbrevs                  show_abbrevs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9195
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9196
  Syntax.ast_trace              syntax_ast_trace
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9197
  Syntax.ast_stat               syntax_ast_stat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9198
  Syntax.ambiguity_level        syntax_ambiguity_level
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9199
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9200
  Goal_Display.goals_limit      goals_limit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9201
  Goal_Display.show_main_goal   show_main_goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9202
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9203
  Method.rule_trace             rule_trace
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9204
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9205
  Thy_Output.display            thy_output_display
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9206
  Thy_Output.quotes             thy_output_quotes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9207
  Thy_Output.indent             thy_output_indent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9208
  Thy_Output.source             thy_output_source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9209
  Thy_Output.break              thy_output_break
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9210
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9211
Note that corresponding "..._default" references in ML may only be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9212
changed globally at the ROOT session setup, but *not* within a theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9213
The option "show_abbrevs" supersedes the former print mode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9214
"no_abbrevs" with inverted meaning.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9215
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9216
* More systematic naming of some configuration options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9217
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9218
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9219
  trace_simp  ~>  simp_trace
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9220
  debug_simp  ~>  simp_debug
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9221
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9222
* Support for real valued configuration options, using simplistic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9223
floating-point notation that coincides with the inner syntax for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9224
float_token.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9225
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9226
* Support for real valued preferences (with approximative PGIP type):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9227
front-ends need to accept "pgint" values in float notation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9228
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9229
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9230
* The IsabelleText font now includes Cyrillic, Hebrew, Arabic from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9231
DejaVu Sans.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9232
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9233
* Discontinued support for Poly/ML 5.0 and 5.1 versions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9234
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9235
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9236
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9237
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9238
* Command 'type_synonym' (with single argument) replaces somewhat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9239
outdated 'types', which is still available as legacy feature for some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9240
time.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9241
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9242
* Command 'nonterminal' (with 'and' separated list of arguments)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9243
replaces somewhat outdated 'nonterminals'.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9244
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9245
* Command 'notepad' replaces former 'example_proof' for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9246
experimentation in Isar without any result.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9247
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9248
* Locale interpretation commands 'interpret' and 'sublocale' accept
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9249
lists of equations to map definitions in a locale to appropriate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9250
entities in the context of the interpretation.  The 'interpretation'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9251
command already provided this functionality.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9252
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9253
* Diagnostic command 'print_dependencies' prints the locale instances
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9254
that would be activated if the specified expression was interpreted in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9255
the current context.  Variant "print_dependencies!" assumes a context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9256
without interpretations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9257
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9258
* Diagnostic command 'print_interps' prints interpretations in proofs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9259
in addition to interpretations in theories.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9260
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9261
* Discontinued obsolete 'global' and 'local' commands to manipulate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9262
the theory name space.  Rare INCOMPATIBILITY.  The ML functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9263
Sign.root_path and Sign.local_path may be applied directly where this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9264
feature is still required for historical reasons.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9265
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9266
* Discontinued obsolete 'constdefs' command.  INCOMPATIBILITY, use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9267
'definition' instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9268
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9269
* The "prems" fact, which refers to the accidental collection of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9270
foundational premises in the context, is now explicitly marked as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9271
legacy feature and will be discontinued soon.  Consider using "assms"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9272
of the head statement or reference facts by explicit names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9273
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9274
* Document antiquotations @{class} and @{type} print classes and type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9275
constructors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9276
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9277
* Document antiquotation @{file} checks file/directory entries within
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9278
the local file system.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9279
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9280
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9281
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9282
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9283
* Coercive subtyping: functions can be declared as coercions and type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9284
inference will add them as necessary upon input of a term.  Theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9285
Complex_Main declares real :: nat => real and real :: int => real as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9286
coercions. A coercion function f is declared like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9287
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9288
  declare [[coercion f]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9289
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9290
To lift coercions through type constructors (e.g. from nat => real to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9291
nat list => real list), map functions can be declared, e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9292
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9293
  declare [[coercion_map map]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9294
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9295
Currently coercion inference is activated only in theories including
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9296
real numbers, i.e. descendants of Complex_Main.  This is controlled by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9297
the configuration option "coercion_enabled", e.g. it can be enabled in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9298
other theories like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9299
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9300
  declare [[coercion_enabled]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9301
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9302
* Command 'partial_function' provides basic support for recursive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9303
function definitions over complete partial orders.  Concrete instances
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9304
are provided for i) the option type, ii) tail recursion on arbitrary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9305
types, and iii) the heap monad of Imperative_HOL.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9306
src/HOL/ex/Fundefs.thy and src/HOL/Imperative_HOL/ex/Linked_Lists.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9307
for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9308
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9309
* Function package: f.psimps rules are no longer implicitly declared
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9310
as [simp].  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9311
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9312
* Datatype package: theorems generated for executable equality (class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9313
"eq") carry proper names and are treated as default code equations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9314
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9315
* Inductive package: now offers command 'inductive_simps' to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9316
automatically derive instantiated and simplified equations for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9317
inductive predicates, similar to 'inductive_cases'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9318
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9319
* Command 'enriched_type' allows to register properties of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9320
functorial structure of types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9321
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9322
* Improved infrastructure for term evaluation using code generator
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9323
techniques, in particular static evaluation conversions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9324
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9325
* Code generator: Scala (2.8 or higher) has been added to the target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9326
languages.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9327
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9328
* Code generator: globbing constant expressions "*" and "Theory.*"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9329
have been replaced by the more idiomatic "_" and "Theory._".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9330
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9331
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9332
* Code generator: export_code without explicit file declaration prints
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9333
to standard output.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9334
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9335
* Code generator: do not print function definitions for case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9336
combinators any longer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9337
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9338
* Code generator: simplification with rules determined with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9339
src/Tools/Code/code_simp.ML and method "code_simp".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9340
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9341
* Code generator for records: more idiomatic representation of record
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9342
types.  Warning: records are not covered by ancient SML code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9343
generation any longer.  INCOMPATIBILITY.  In cases of need, a suitable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9344
rep_datatype declaration helps to succeed then:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9345
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9346
  record 'a foo = ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9347
  ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9348
  rep_datatype foo_ext ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9349
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9350
* Records: logical foundation type for records does not carry a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9351
'_type' suffix any longer (obsolete due to authentic syntax).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9352
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9353
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9354
* Quickcheck now by default uses exhaustive testing instead of random
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9355
testing.  Random testing can be invoked by "quickcheck [random]",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9356
exhaustive testing by "quickcheck [exhaustive]".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9357
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9358
* Quickcheck instantiates polymorphic types with small finite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9359
datatypes by default. This enables a simple execution mechanism to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9360
handle quantifiers and function equality over the finite datatypes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9361
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9362
* Quickcheck random generator has been renamed from "code" to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9363
"random".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9364
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9365
* Quickcheck now has a configurable time limit which is set to 30
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9366
seconds by default. This can be changed by adding [timeout = n] to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9367
quickcheck command. The time limit for Auto Quickcheck is still set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9368
independently.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9369
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9370
* Quickcheck in locales considers interpretations of that locale for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9371
counter example search.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9372
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9373
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9374
  - Added "smt" and "remote_smt" provers based on the "smt" proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9375
    method. See the Sledgehammer manual for details ("isabelle doc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9376
    sledgehammer").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9377
  - Renamed commands:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9378
    sledgehammer atp_info ~> sledgehammer running_provers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9379
    sledgehammer atp_kill ~> sledgehammer kill_provers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9380
    sledgehammer available_atps ~> sledgehammer available_provers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9381
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9382
  - Renamed options:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9383
    sledgehammer [atps = ...] ~> sledgehammer [provers = ...]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9384
    sledgehammer [atp = ...] ~> sledgehammer [prover = ...]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9385
    sledgehammer [timeout = 77 s] ~> sledgehammer [timeout = 77]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9386
    (and "ms" and "min" are no longer supported)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9387
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9388
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9389
* Nitpick:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9390
  - Renamed options:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9391
    nitpick [timeout = 77 s] ~> nitpick [timeout = 77]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9392
    nitpick [tac_timeout = 777 ms] ~> nitpick [tac_timeout = 0.777]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9393
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9394
  - Added support for partial quotient types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9395
  - Added local versions of the "Nitpick.register_xxx" functions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9396
  - Added "whack" option.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9397
  - Allow registration of quotient types as codatatypes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9398
  - Improved "merge_type_vars" option to merge more types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9399
  - Removed unsound "fast_descrs" option.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9400
  - Added custom symmetry breaking for datatypes, making it possible to reach
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9401
    higher cardinalities.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9402
  - Prevent the expansion of too large definitions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9403
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9404
* Proof methods "metis" and "meson" now have configuration options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9405
"meson_trace", "metis_trace", and "metis_verbose" that can be enabled
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9406
to diagnose these tools. E.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9407
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9408
    using [[metis_trace = true]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9409
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9410
* Auto Solve: Renamed "Auto Solve Direct".  The tool is now available
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9411
manually as command 'solve_direct'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9412
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9413
* The default SMT solver Z3 must be enabled explicitly (due to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9414
licensing issues) by setting the environment variable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9415
Z3_NON_COMMERCIAL in etc/settings of the component, for example.  For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9416
commercial applications, the SMT solver CVC3 is provided as fall-back;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9417
changing the SMT solver is done via the configuration option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9418
"smt_solver".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9419
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9420
* Remote SMT solvers need to be referred to by the "remote_" prefix,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9421
i.e. "remote_cvc3" and "remote_z3".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9422
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9423
* Added basic SMT support for datatypes, records, and typedefs using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9424
the oracle mode (no proofs).  Direct support of pairs has been dropped
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9425
in exchange (pass theorems fst_conv snd_conv pair_collapse to the SMT
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9426
support for a similar behavior).  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9427
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9428
* Changed SMT configuration options:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9429
  - Renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9430
    z3_proofs ~> smt_oracle (with inverted meaning)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9431
    z3_trace_assms ~> smt_trace_used_facts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9432
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9433
  - Added:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9434
    smt_verbose
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9435
    smt_random_seed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9436
    smt_datatypes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9437
    smt_infer_triggers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9438
    smt_monomorph_limit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9439
    cvc3_options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9440
    remote_cvc3_options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9441
    remote_z3_options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9442
    yices_options
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9444
* Boogie output files (.b2i files) need to be declared in the theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9445
header.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9446
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9447
* Simplification procedure "list_to_set_comprehension" rewrites list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9448
comprehensions applied to List.set to set comprehensions.  Occasional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9449
INCOMPATIBILITY, may be deactivated like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9450
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9451
  declare [[simproc del: list_to_set_comprehension]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9452
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9453
* Removed old version of primrec package.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9454
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9455
* Removed simplifier congruence rule of "prod_case", as has for long
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9456
been the case with "split".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9457
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9458
* String.literal is a type, but not a datatype.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9459
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9460
* Removed [split_format ... and ... and ...] version of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9461
[split_format].  Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9462
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9463
* Predicate "sorted" now defined inductively, with nice induction
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9464
rules.  INCOMPATIBILITY: former sorted.simps now named sorted_simps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9465
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9466
* Constant "contents" renamed to "the_elem", to free the generic name
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9467
contents for other uses.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9468
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9469
* Renamed class eq and constant eq (for code generation) to class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9470
equal and constant equal, plus renaming of related facts and various
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9471
tuning.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9472
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9473
* Dropped type classes mult_mono and mult_mono1.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9474
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9475
* Removed output syntax "'a ~=> 'b" for "'a => 'b option".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9476
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9477
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9478
* Renamed theory Fset to Cset, type Fset.fset to Cset.set, in order to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9479
avoid confusion with finite sets.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9480
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9481
* Abandoned locales equiv, congruent and congruent2 for equivalence
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9482
relations.  INCOMPATIBILITY: use equivI rather than equiv_intro (same
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9483
for congruent(2)).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9484
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9485
* Some previously unqualified names have been qualified:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9486
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9487
  types
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9488
    bool ~> HOL.bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9489
    nat ~> Nat.nat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9490
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9491
  constants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9492
    Trueprop ~> HOL.Trueprop
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9493
    True ~> HOL.True
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9494
    False ~> HOL.False
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9495
    op & ~> HOL.conj
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9496
    op | ~> HOL.disj
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9497
    op --> ~> HOL.implies
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9498
    op = ~> HOL.eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9499
    Not ~> HOL.Not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9500
    The ~> HOL.The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9501
    All ~> HOL.All
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9502
    Ex ~> HOL.Ex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9503
    Ex1 ~> HOL.Ex1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9504
    Let ~> HOL.Let
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9505
    If ~> HOL.If
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9506
    Ball ~> Set.Ball
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9507
    Bex ~> Set.Bex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9508
    Suc ~> Nat.Suc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9509
    Pair ~> Product_Type.Pair
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9510
    fst ~> Product_Type.fst
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9511
    snd ~> Product_Type.snd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9512
    curry ~> Product_Type.curry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9513
    op : ~> Set.member
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9514
    Collect ~> Set.Collect
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9515
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9516
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9517
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9518
* More canonical naming convention for some fundamental definitions:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9519
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9520
    bot_bool_eq ~> bot_bool_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9521
    top_bool_eq ~> top_bool_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9522
    inf_bool_eq ~> inf_bool_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9523
    sup_bool_eq ~> sup_bool_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9524
    bot_fun_eq  ~> bot_fun_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9525
    top_fun_eq  ~> top_fun_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9526
    inf_fun_eq  ~> inf_fun_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9527
    sup_fun_eq  ~> sup_fun_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9528
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9529
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9531
* More stylized fact names:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9532
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9533
  expand_fun_eq ~> fun_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9534
  expand_set_eq ~> set_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9535
  set_ext       ~> set_eqI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9536
  nat_number    ~> eval_nat_numeral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9537
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9538
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9539
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9540
* Refactoring of code-generation specific operations in theory List:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9541
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9542
  constants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9543
    null ~> List.null
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9544
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9545
  facts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9546
    mem_iff ~> member_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9547
    null_empty ~> null_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9548
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9549
INCOMPATIBILITY.  Note that these were not supposed to be used
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9550
regularly unless for striking reasons; their main purpose was code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9551
generation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9552
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9553
Various operations from the Haskell prelude are used for generating
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9554
Haskell code.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9555
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9556
* Term "bij f" is now an abbreviation of "bij_betw f UNIV UNIV".  Term
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9557
"surj f" is now an abbreviation of "range f = UNIV".  The theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9558
bij_def and surj_def are unchanged.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9559
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9560
* Abolished some non-alphabetic type names: "prod" and "sum" replace
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9561
"*" and "+" respectively.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9562
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9563
* Name "Plus" of disjoint sum operator "<+>" is now hidden.  Write
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9564
"Sum_Type.Plus" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9565
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9566
* Constant "split" has been merged with constant "prod_case"; names of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9567
ML functions, facts etc. involving split have been retained so far,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9568
though.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9569
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9570
* Dropped old infix syntax "_ mem _" for List.member; use "_ : set _"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9571
instead.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9572
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9573
* Removed lemma "Option.is_none_none" which duplicates "is_none_def".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9574
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9575
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9576
* Former theory Library/Enum is now part of the HOL-Main image.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9577
INCOMPATIBILITY: all constants of the Enum theory now have to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9578
referred to by its qualified name.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9579
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9580
  enum    ~>  Enum.enum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9581
  nlists  ~>  Enum.nlists
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9582
  product ~>  Enum.product
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9583
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9584
* Theory Library/Monad_Syntax provides do-syntax for monad types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9585
Syntax in Library/State_Monad has been changed to avoid ambiguities.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9586
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9587
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9588
* Theory Library/SetsAndFunctions has been split into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9589
Library/Function_Algebras and Library/Set_Algebras; canonical names
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9590
for instance definitions for functions; various improvements.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9591
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9592
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9593
* Theory Library/Multiset provides stable quicksort implementation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9594
sort_key.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9595
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9596
* Theory Library/Multiset: renamed empty_idemp ~> empty_neutral.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9597
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9598
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9599
* Session Multivariate_Analysis: introduced a type class for euclidean
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9600
space.  Most theorems are now stated in terms of euclidean spaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9601
instead of finite cartesian products.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9602
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9603
  types
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9604
    real ^ 'n ~>  'a::real_vector
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9605
              ~>  'a::euclidean_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9606
              ~>  'a::ordered_euclidean_space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9607
        (depends on your needs)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9608
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9609
  constants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9610
     _ $ _        ~> _ $$ _
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9611
     \<chi> x. _  ~> \<chi>\<chi> x. _
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9612
     CARD('n)     ~> DIM('a)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9613
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9614
Also note that the indices are now natural numbers and not from some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9615
finite type. Finite cartesian products of euclidean spaces, products
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9616
of euclidean spaces the real and complex numbers are instantiated to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9617
be euclidean_spaces.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9618
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9619
* Session Probability: introduced pextreal as positive extended real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9620
numbers.  Use pextreal as value for measures.  Introduce the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9621
Radon-Nikodym derivative, product spaces and Fubini's theorem for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9622
arbitrary sigma finite measures.  Introduces Lebesgue measure based on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9623
the integral in Multivariate Analysis.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9624
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9625
* Session Imperative_HOL: revamped, corrected dozens of inadequacies.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9626
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9627
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9628
* Session SPARK (with image HOL-SPARK) provides commands to load and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9629
prove verification conditions generated by the SPARK Ada program
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9630
verifier.  See also src/HOL/SPARK and src/HOL/SPARK/Examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9631
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9632
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9633
*** HOL-Algebra ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9634
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9635
* Theorems for additive ring operations (locale abelian_monoid and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9636
descendants) are generated by interpretation from their multiplicative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9637
counterparts.  Names (in particular theorem names) have the mandatory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9638
qualifier 'add'.  Previous theorem names are redeclared for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9639
compatibility.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9640
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9641
* Structure "int_ring" is now an abbreviation (previously a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9642
definition).  This fits more natural with advanced interpretations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9643
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9644
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9645
*** HOLCF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9646
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9647
* The domain package now runs in definitional mode by default: The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9648
former command 'new_domain' is now called 'domain'.  To use the domain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9649
package in its original axiomatic mode, use 'domain (unsafe)'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9650
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9651
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9652
* The new class "domain" is now the default sort.  Class "predomain"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9653
is an unpointed version of "domain". Theories can be updated by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9654
replacing sort annotations as shown below.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9655
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9656
  'a::type ~> 'a::countable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9657
  'a::cpo  ~> 'a::predomain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9658
  'a::pcpo ~> 'a::domain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9659
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9660
* The old type class "rep" has been superseded by class "domain".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9661
Accordingly, users of the definitional package must remove any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9662
"default_sort rep" declarations.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9663
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9664
* The domain package (definitional mode) now supports unpointed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9665
predomain argument types, as long as they are marked 'lazy'. (Strict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9666
arguments must be in class "domain".) For example, the following
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9667
domain definition now works:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9668
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9669
  domain natlist = nil | cons (lazy "nat discr") (lazy "natlist")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9670
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9671
* Theory HOLCF/Library/HOL_Cpo provides cpo and predomain class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9672
instances for types from main HOL: bool, nat, int, char, 'a + 'b,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9673
'a option, and 'a list.  Additionally, it configures fixrec and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9674
domain package to work with these types.  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9675
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9676
  fixrec isInl :: "('a + 'b) u -> tr"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9677
    where "isInl$(up$(Inl x)) = TT" | "isInl$(up$(Inr y)) = FF"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9678
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9679
  domain V = VFun (lazy "V -> V") | VCon (lazy "nat") (lazy "V list")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9680
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9681
* The "(permissive)" option of fixrec has been replaced with a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9682
per-equation "(unchecked)" option. See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9683
src/HOL/HOLCF/Tutorial/Fixrec_ex.thy for examples. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9684
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9685
* The "bifinite" class no longer fixes a constant "approx"; the class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9686
now just asserts that such a function exists.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9687
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9688
* Former type "alg_defl" has been renamed to "defl".  HOLCF no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9689
defines an embedding of type 'a defl into udom by default; instances
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9690
of "bifinite" and "domain" classes are available in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9691
src/HOL/HOLCF/Library/Defl_Bifinite.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9692
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9693
* The syntax "REP('a)" has been replaced with "DEFL('a)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9694
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9695
* The predicate "directed" has been removed.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9696
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9697
* The type class "finite_po" has been removed.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9698
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9699
* The function "cprod_map" has been renamed to "prod_map".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9700
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9701
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9702
* The monadic bind operator on each powerdomain has new binder syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9703
similar to sets, e.g. "\<Union>\<sharp>x\<in>xs. t" represents
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9704
"upper_bind\<cdot>xs\<cdot>(\<Lambda> x. t)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9705
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9706
* The infix syntax for binary union on each powerdomain has changed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9707
from e.g. "+\<sharp>" to "\<union>\<sharp>", for consistency with set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9708
syntax.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9709
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9710
* The constant "UU" has been renamed to "bottom".  The syntax "UU" is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9711
still supported as an input translation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9712
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9713
* Renamed some theorems (the original names are also still available).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9714
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9715
  expand_fun_below   ~> fun_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9716
  below_fun_ext      ~> fun_belowI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9717
  expand_cfun_eq     ~> cfun_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9718
  ext_cfun           ~> cfun_eqI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9719
  expand_cfun_below  ~> cfun_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9720
  below_cfun_ext     ~> cfun_belowI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9721
  cont2cont_Rep_CFun ~> cont2cont_APP
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9722
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9723
* The Abs and Rep functions for various types have changed names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9724
Related theorem names have also changed to match. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9725
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9726
  Rep_CFun  ~> Rep_cfun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9727
  Abs_CFun  ~> Abs_cfun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9728
  Rep_Sprod ~> Rep_sprod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9729
  Abs_Sprod ~> Abs_sprod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9730
  Rep_Ssum  ~> Rep_ssum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9731
  Abs_Ssum  ~> Abs_ssum
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9732
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9733
* Lemmas with names of the form *_defined_iff or *_strict_iff have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9734
been renamed to *_bottom_iff.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9735
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9736
* Various changes to bisimulation/coinduction with domain package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9737
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9738
  - Definitions of "bisim" constants no longer mention definedness.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9739
  - With mutual recursion, "bisim" predicate is now curried.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9740
  - With mutual recursion, each type gets a separate coind theorem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9741
  - Variable names in bisim_def and coinduct rules have changed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9742
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9743
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9744
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9745
* Case combinators generated by the domain package for type "foo" are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9746
now named "foo_case" instead of "foo_when".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9747
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9748
* Several theorems have been renamed to more accurately reflect the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9749
names of constants and types involved.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9751
  thelub_const    ~> lub_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9752
  lub_const       ~> is_lub_const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9753
  thelubI         ~> lub_eqI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9754
  is_lub_lub      ~> is_lubD2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9755
  lubI            ~> is_lub_lub
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9756
  unique_lub      ~> is_lub_unique
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9757
  is_ub_lub       ~> is_lub_rangeD1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9758
  lub_bin_chain   ~> is_lub_bin_chain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9759
  lub_fun         ~> is_lub_fun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9760
  thelub_fun      ~> lub_fun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9761
  thelub_cfun     ~> lub_cfun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9762
  thelub_Pair     ~> lub_Pair
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9763
  lub_cprod       ~> is_lub_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9764
  thelub_cprod    ~> lub_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9765
  minimal_cprod   ~> minimal_prod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9766
  inst_cprod_pcpo ~> inst_prod_pcpo
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9767
  UU_I            ~> bottomI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9768
  compact_UU      ~> compact_bottom
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9769
  deflation_UU    ~> deflation_bottom
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9770
  finite_deflation_UU ~> finite_deflation_bottom
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9771
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9772
* Many legacy theorem names have been discontinued.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9773
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9774
  sq_ord_less_eq_trans ~> below_eq_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9775
  sq_ord_eq_less_trans ~> eq_below_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9776
  refl_less            ~> below_refl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9777
  trans_less           ~> below_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9778
  antisym_less         ~> below_antisym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9779
  antisym_less_inverse ~> po_eq_conv [THEN iffD1]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9780
  box_less             ~> box_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9781
  rev_trans_less       ~> rev_below_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9782
  not_less2not_eq      ~> not_below2not_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9783
  less_UU_iff          ~> below_UU_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9784
  flat_less_iff        ~> flat_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9785
  adm_less             ~> adm_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9786
  adm_not_less         ~> adm_not_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9787
  adm_compact_not_less ~> adm_compact_not_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9788
  less_fun_def         ~> below_fun_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9789
  expand_fun_less      ~> fun_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9790
  less_fun_ext         ~> fun_belowI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9791
  less_discr_def       ~> below_discr_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9792
  discr_less_eq        ~> discr_below_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9793
  less_unit_def        ~> below_unit_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9794
  less_cprod_def       ~> below_prod_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9795
  prod_lessI           ~> prod_belowI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9796
  Pair_less_iff        ~> Pair_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9797
  fst_less_iff         ~> fst_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9798
  snd_less_iff         ~> snd_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9799
  expand_cfun_less     ~> cfun_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9800
  less_cfun_ext        ~> cfun_belowI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9801
  injection_less       ~> injection_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9802
  less_up_def          ~> below_up_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9803
  not_Iup_less         ~> not_Iup_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9804
  Iup_less             ~> Iup_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9805
  up_less              ~> up_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9806
  Def_inject_less_eq   ~> Def_below_Def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9807
  Def_less_is_eq       ~> Def_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9808
  spair_less_iff       ~> spair_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9809
  less_sprod           ~> below_sprod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9810
  spair_less           ~> spair_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9811
  sfst_less_iff        ~> sfst_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9812
  ssnd_less_iff        ~> ssnd_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9813
  fix_least_less       ~> fix_least_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9814
  dist_less_one        ~> dist_below_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9815
  less_ONE             ~> below_ONE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9816
  ONE_less_iff         ~> ONE_below_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9817
  less_sinlD           ~> below_sinlD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9818
  less_sinrD           ~> below_sinrD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9819
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9820
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9821
*** FOL and ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9822
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9823
* All constant names are now qualified internally and use proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9824
identifiers, e.g. "IFOL.eq" instead of "op =".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9825
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9826
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9827
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9828
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9829
* Antiquotation @{assert} inlines a function bool -> unit that raises
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9830
Fail if the argument is false.  Due to inlining the source position of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9831
failed assertions is included in the error output.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9832
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9833
* Discontinued antiquotation @{theory_ref}, which is obsolete since ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9834
text is in practice always evaluated with a stable theory checkpoint.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9835
Minor INCOMPATIBILITY, use (Theory.check_thy @{theory}) instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9836
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9837
* Antiquotation @{theory A} refers to theory A from the ancestry of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9838
the current context, not any accidental theory loader state as before.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9839
Potential INCOMPATIBILITY, subtle change in semantics.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9840
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9841
* Syntax.pretty_priority (default 0) configures the required priority
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9842
of pretty-printed output and thus affects insertion of parentheses.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9843
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9844
* Syntax.default_root (default "any") configures the inner syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9845
category (nonterminal symbol) for parsing of terms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9846
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9847
* Former exception Library.UnequalLengths now coincides with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9848
ListPair.UnequalLengths.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9849
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9850
* Renamed structure MetaSimplifier to Raw_Simplifier.  Note that the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9851
main functionality is provided by structure Simplifier.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9852
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9853
* Renamed raw "explode" function to "raw_explode" to emphasize its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9854
meaning.  Note that internally to Isabelle, Symbol.explode is used in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9855
almost all situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9856
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9857
* Discontinued obsolete function sys_error and exception SYS_ERROR.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9858
See implementation manual for further details on exceptions in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9859
Isabelle/ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9860
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9861
* Renamed setmp_noncritical to Unsynchronized.setmp to emphasize its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9862
meaning.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9863
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9864
* Renamed structure PureThy to Pure_Thy and moved most of its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9865
operations to structure Global_Theory, to emphasize that this is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9866
rarely-used global-only stuff.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9867
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9868
* Discontinued Output.debug.  Minor INCOMPATIBILITY, use plain writeln
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9869
instead (or tracing for high-volume output).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9870
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9871
* Configuration option show_question_marks only affects regular pretty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9872
printing of types and terms, not raw Term.string_of_vname.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9873
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9874
* ML_Context.thm and ML_Context.thms are no longer pervasive.  Rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9875
INCOMPATIBILITY, superseded by static antiquotations @{thm} and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9876
@{thms} for most purposes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9877
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9878
* ML structure Unsynchronized is never opened, not even in Isar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9879
interaction mode as before.  Old Unsynchronized.set etc. have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9880
discontinued -- use plain := instead.  This should be *rare* anyway,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9881
since modern tools always work via official context data, notably
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9882
configuration options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9883
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9884
* Parallel and asynchronous execution requires special care concerning
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9885
interrupts.  Structure Exn provides some convenience functions that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9886
avoid working directly with raw Interrupt.  User code must not absorb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9887
interrupts -- intermediate handling (for cleanup etc.) needs to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9888
followed by re-raising of the original exception.  Another common
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9889
source of mistakes are "handle _" patterns, which make the meaning of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9890
the program subject to physical effects of the environment.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9891
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9892
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9893
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9894
New in Isabelle2009-2 (June 2010)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9895
---------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9896
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9897
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9899
* Authentic syntax for *all* logical entities (type classes, type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9900
constructors, term constants): provides simple and robust
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9901
correspondence between formal entities and concrete syntax.  Within
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9902
the parse tree / AST representations, "constants" are decorated by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9903
their category (class, type, const) and spelled out explicitly with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9904
their full internal name.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9905
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9906
Substantial INCOMPATIBILITY concerning low-level syntax declarations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9907
and translations (translation rules and translation functions in ML).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9908
Some hints on upgrading:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9909
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9910
  - Many existing uses of 'syntax' and 'translations' can be replaced
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9911
    by more modern 'type_notation', 'notation' and 'abbreviation',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9912
    which are independent of this issue.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9913
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9914
  - 'translations' require markup within the AST; the term syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9915
    provides the following special forms:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9916
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9917
      CONST c   -- produces syntax version of constant c from context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9918
      XCONST c  -- literally c, checked as constant from context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9919
      c         -- literally c, if declared by 'syntax'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9920
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9921
    Plain identifiers are treated as AST variables -- occasionally the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9922
    system indicates accidental variables via the error "rhs contains
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9923
    extra variables".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9924
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9925
    Type classes and type constructors are marked according to their
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9926
    concrete syntax.  Some old translations rules need to be written
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9927
    for the "type" category, using type constructor application
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9928
    instead of pseudo-term application of the default category
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9929
    "logic".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9930
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9931
  - 'parse_translation' etc. in ML may use the following
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9932
    antiquotations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9933
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9934
      @{class_syntax c}   -- type class c within parse tree / AST
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9935
      @{term_syntax c}    -- type constructor c within parse tree / AST
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9936
      @{const_syntax c}   -- ML version of "CONST c" above
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9937
      @{syntax_const c}   -- literally c (checked wrt. 'syntax' declarations)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9938
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9939
  - Literal types within 'typed_print_translations', i.e. those *not*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9940
    represented as pseudo-terms are represented verbatim.  Use @{class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9941
    c} or @{type_name c} here instead of the above syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9942
    antiquotations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9943
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9944
Note that old non-authentic syntax was based on unqualified base
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9945
names, so all of the above "constant" names would coincide.  Recall
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9946
that 'print_syntax' and ML_command "set Syntax.trace_ast" help to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9947
diagnose syntax problems.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9948
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9949
* Type constructors admit general mixfix syntax, not just infix.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9950
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9951
* Concrete syntax may be attached to local entities without a proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9952
body, too.  This works via regular mixfix annotations for 'fix',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9953
'def', 'obtain' etc. or via the explicit 'write' command, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9954
similar to the 'notation' command in theory specifications.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9955
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9956
* Discontinued unnamed infix syntax (legacy feature for many years) --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9957
need to specify constant name and syntax separately.  Internal ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9958
datatype constructors have been renamed from InfixName to Infix etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9959
Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9960
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9961
* Schematic theorem statements need to be explicitly markup as such,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9962
via commands 'schematic_lemma', 'schematic_theorem',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9963
'schematic_corollary'.  Thus the relevance of the proof is made
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9964
syntactically clear, which impacts performance in a parallel or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9965
asynchronous interactive environment.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9966
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9967
* Use of cumulative prems via "!" in some proof methods has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9968
discontinued (old legacy feature).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9969
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9970
* References 'trace_simp' and 'debug_simp' have been replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9971
configuration options stored in the context. Enabling tracing (the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9972
case of debugging is similar) in proofs works via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9973
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9974
  using [[trace_simp = true]]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9975
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9976
Tracing is then active for all invocations of the simplifier in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9977
subsequent goal refinement steps. Tracing may also still be enabled or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9978
disabled via the ProofGeneral settings menu.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9979
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9980
* Separate commands 'hide_class', 'hide_type', 'hide_const',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9981
'hide_fact' replace the former 'hide' KIND command.  Minor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9982
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9983
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9984
* Improved parallelism of proof term normalization: usedir -p2 -q0 is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9985
more efficient than combinations with -q1 or -q2.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9986
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9987
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9988
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9989
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9990
* Proofterms record type-class reasoning explicitly, using the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9991
"unconstrain" operation internally.  This eliminates all sort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9992
constraints from a theorem and proof, introducing explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9993
OFCLASS-premises.  On the proof term level, this operation is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9994
automatically applied at theorem boundaries, such that closed proofs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9995
are always free of sort constraints.  INCOMPATIBILITY for tools that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9996
inspect proof terms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9997
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9998
* Local theory specifications may depend on extra type variables that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
  9999
are not present in the result type -- arguments TYPE('a) :: 'a itself
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10000
are added internally.  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10001
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10002
  definition unitary :: bool where "unitary = (ALL (x::'a) y. x = y)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10003
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10004
* Predicates of locales introduced by classes carry a mandatory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10005
"class" prefix.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10006
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10007
* Vacuous class specifications observe default sort.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10008
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10009
* Old 'axclass' command has been discontinued.  INCOMPATIBILITY, use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10010
'class' instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10011
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10012
* Command 'code_reflect' allows to incorporate generated ML code into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10013
runtime environment; replaces immature code_datatype antiquotation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10014
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10015
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10016
* Code generator: simple concept for abstract datatypes obeying
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10017
invariants.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10018
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10019
* Code generator: details of internal data cache have no impact on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10020
user space functionality any longer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10021
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10022
* Methods "unfold_locales" and "intro_locales" ignore non-locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10023
subgoals.  This is more appropriate for interpretations with 'where'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10024
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10025
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10026
* Command 'example_proof' opens an empty proof body.  This allows to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10027
experiment with Isar, without producing any persistent result.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10028
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10029
* Commands 'type_notation' and 'no_type_notation' declare type syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10030
within a local theory context, with explicit checking of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10031
constructors involved (in contrast to the raw 'syntax' versions).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10032
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10033
* Commands 'types' and 'typedecl' now work within a local theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10034
context -- without introducing dependencies on parameters or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10035
assumptions, which is not possible in Isabelle/Pure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10036
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10037
* Command 'defaultsort' has been renamed to 'default_sort', it works
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10038
within a local theory context.  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10039
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10040
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10041
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10042
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10043
* Command 'typedef' now works within a local theory context -- without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10044
introducing dependencies on parameters or assumptions, which is not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10045
possible in Isabelle/Pure/HOL.  Note that the logical environment may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10046
contain multiple interpretations of local typedefs (with different
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10047
non-emptiness proofs), even in a global theory context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10049
* New package for quotient types.  Commands 'quotient_type' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10050
'quotient_definition' may be used for defining types and constants by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10051
quotient constructions.  An example is the type of integers created by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10052
quotienting pairs of natural numbers:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10053
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10054
  fun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10055
    intrel :: "(nat * nat) => (nat * nat) => bool"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10056
  where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10057
    "intrel (x, y) (u, v) = (x + v = u + y)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10058
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10059
  quotient_type int = "nat * nat" / intrel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10060
    by (auto simp add: equivp_def expand_fun_eq)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10061
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10062
  quotient_definition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10063
    "0::int" is "(0::nat, 0::nat)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10064
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10065
The method "lifting" can be used to lift of theorems from the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10066
underlying "raw" type to the quotient type.  The example
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10067
src/HOL/Quotient_Examples/FSet.thy includes such a quotient
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10068
construction and provides a reasoning infrastructure for finite sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10069
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10070
* Renamed Library/Quotient.thy to Library/Quotient_Type.thy to avoid
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10071
clash with new theory Quotient in Main HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10072
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10073
* Moved the SMT binding into the main HOL session, eliminating
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10074
separate HOL-SMT session.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10075
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10076
* List membership infix mem operation is only an input abbreviation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10077
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10078
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10079
* Theory Library/Word.thy has been removed.  Use library Word/Word.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10080
for future developements; former Library/Word.thy is still present in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10081
the AFP entry RSAPPS.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10082
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10083
* Theorem Int.int_induct renamed to Int.int_of_nat_induct and is no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10084
longer shadowed.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10085
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10086
* Dropped theorem duplicate comp_arith; use semiring_norm instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10087
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10088
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10089
* Dropped theorem RealPow.real_sq_order; use power2_le_imp_le instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10090
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10091
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10092
* Dropped normalizing_semiring etc; use the facts in semiring classes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10093
instead.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10094
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10095
* Dropped several real-specific versions of lemmas about floor and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10096
ceiling; use the generic lemmas from theory "Archimedean_Field"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10097
instead.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10098
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10099
  floor_number_of_eq         ~> floor_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10100
  le_floor_eq_number_of      ~> number_of_le_floor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10101
  le_floor_eq_zero           ~> zero_le_floor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10102
  le_floor_eq_one            ~> one_le_floor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10103
  floor_less_eq_number_of    ~> floor_less_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10104
  floor_less_eq_zero         ~> floor_less_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10105
  floor_less_eq_one          ~> floor_less_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10106
  less_floor_eq_number_of    ~> number_of_less_floor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10107
  less_floor_eq_zero         ~> zero_less_floor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10108
  less_floor_eq_one          ~> one_less_floor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10109
  floor_le_eq_number_of      ~> floor_le_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10110
  floor_le_eq_zero           ~> floor_le_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10111
  floor_le_eq_one            ~> floor_le_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10112
  floor_subtract_number_of   ~> floor_diff_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10113
  floor_subtract_one         ~> floor_diff_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10114
  ceiling_number_of_eq       ~> ceiling_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10115
  ceiling_le_eq_number_of    ~> ceiling_le_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10116
  ceiling_le_zero_eq         ~> ceiling_le_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10117
  ceiling_le_eq_one          ~> ceiling_le_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10118
  less_ceiling_eq_number_of  ~> number_of_less_ceiling
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10119
  less_ceiling_eq_zero       ~> zero_less_ceiling
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10120
  less_ceiling_eq_one        ~> one_less_ceiling
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10121
  ceiling_less_eq_number_of  ~> ceiling_less_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10122
  ceiling_less_eq_zero       ~> ceiling_less_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10123
  ceiling_less_eq_one        ~> ceiling_less_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10124
  le_ceiling_eq_number_of    ~> number_of_le_ceiling
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10125
  le_ceiling_eq_zero         ~> zero_le_ceiling
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10126
  le_ceiling_eq_one          ~> one_le_ceiling
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10127
  ceiling_subtract_number_of ~> ceiling_diff_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10128
  ceiling_subtract_one       ~> ceiling_diff_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10129
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10130
* Theory "Finite_Set": various folding_XXX locales facilitate the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10131
application of the various fold combinators on finite sets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10132
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10133
* Library theory "RBT" renamed to "RBT_Impl"; new library theory "RBT"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10134
provides abstract red-black tree type which is backed by "RBT_Impl" as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10135
implementation.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10136
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10137
* Theory Library/Coinductive_List has been removed -- superseded by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10138
AFP/thys/Coinductive.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10139
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10140
* Theory PReal, including the type "preal" and related operations, has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10141
been removed.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10142
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10143
* Real: new development using Cauchy Sequences.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10144
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10145
* Split off theory "Big_Operators" containing setsum, setprod,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10146
Inf_fin, Sup_fin, Min, Max from theory Finite_Set.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10147
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10148
* Theory "Rational" renamed to "Rat", for consistency with "Nat",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10149
"Int" etc.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10150
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10151
* Constant Rat.normalize needs to be qualified.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10152
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10153
* New set of rules "ac_simps" provides combined assoc / commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10154
rewrites for all interpretations of the appropriate generic locales.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10155
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10156
* Renamed theory "OrderedGroup" to "Groups" and split theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10157
"Ring_and_Field" into theories "Rings" and "Fields"; for more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10158
appropriate and more consistent names suitable for name prefixes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10159
within the HOL theories.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10160
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10161
* Some generic constants have been put to appropriate theories:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10162
  - less_eq, less: Orderings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10163
  - zero, one, plus, minus, uminus, times, abs, sgn: Groups
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10164
  - inverse, divide: Rings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10165
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10166
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10167
* More consistent naming of type classes involving orderings (and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10168
lattices):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10169
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10170
    lower_semilattice                   ~> semilattice_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10171
    upper_semilattice                   ~> semilattice_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10172
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10173
    dense_linear_order                  ~> dense_linorder
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10174
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10175
    pordered_ab_group_add               ~> ordered_ab_group_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10176
    pordered_ab_group_add_abs           ~> ordered_ab_group_add_abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10177
    pordered_ab_semigroup_add           ~> ordered_ab_semigroup_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10178
    pordered_ab_semigroup_add_imp_le    ~> ordered_ab_semigroup_add_imp_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10179
    pordered_cancel_ab_semigroup_add    ~> ordered_cancel_ab_semigroup_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10180
    pordered_cancel_comm_semiring       ~> ordered_cancel_comm_semiring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10181
    pordered_cancel_semiring            ~> ordered_cancel_semiring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10182
    pordered_comm_monoid_add            ~> ordered_comm_monoid_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10183
    pordered_comm_ring                  ~> ordered_comm_ring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10184
    pordered_comm_semiring              ~> ordered_comm_semiring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10185
    pordered_ring                       ~> ordered_ring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10186
    pordered_ring_abs                   ~> ordered_ring_abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10187
    pordered_semiring                   ~> ordered_semiring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10188
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10189
    ordered_ab_group_add                ~> linordered_ab_group_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10190
    ordered_ab_semigroup_add            ~> linordered_ab_semigroup_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10191
    ordered_cancel_ab_semigroup_add     ~> linordered_cancel_ab_semigroup_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10192
    ordered_comm_semiring_strict        ~> linordered_comm_semiring_strict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10193
    ordered_field                       ~> linordered_field
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10194
    ordered_field_no_lb                 ~> linordered_field_no_lb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10195
    ordered_field_no_ub                 ~> linordered_field_no_ub
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10196
    ordered_field_dense_linear_order    ~> dense_linordered_field
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10197
    ordered_idom                        ~> linordered_idom
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10198
    ordered_ring                        ~> linordered_ring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10199
    ordered_ring_le_cancel_factor       ~> linordered_ring_le_cancel_factor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10200
    ordered_ring_less_cancel_factor     ~> linordered_ring_less_cancel_factor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10201
    ordered_ring_strict                 ~> linordered_ring_strict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10202
    ordered_semidom                     ~> linordered_semidom
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10203
    ordered_semiring                    ~> linordered_semiring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10204
    ordered_semiring_1                  ~> linordered_semiring_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10205
    ordered_semiring_1_strict           ~> linordered_semiring_1_strict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10206
    ordered_semiring_strict             ~> linordered_semiring_strict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10207
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10208
  The following slightly odd type classes have been moved to a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10209
  separate theory Library/Lattice_Algebras:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10210
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10211
    lordered_ab_group_add               ~> lattice_ab_group_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10212
    lordered_ab_group_add_abs           ~> lattice_ab_group_add_abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10213
    lordered_ab_group_add_meet          ~> semilattice_inf_ab_group_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10214
    lordered_ab_group_add_join          ~> semilattice_sup_ab_group_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10215
    lordered_ring                       ~> lattice_ring
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10216
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10217
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10218
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10219
* Refined field classes:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10220
  - classes division_ring_inverse_zero, field_inverse_zero,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10221
    linordered_field_inverse_zero include rule inverse 0 = 0 --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10222
    subsumes former division_by_zero class;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10223
  - numerous lemmas have been ported from field to division_ring.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10224
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10225
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10226
* Refined algebra theorem collections:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10227
  - dropped theorem group group_simps, use algebra_simps instead;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10228
  - dropped theorem group ring_simps, use field_simps instead;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10229
  - proper theorem collection field_simps subsumes former theorem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10230
    groups field_eq_simps and field_simps;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10231
  - dropped lemma eq_minus_self_iff which is a duplicate for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10232
    equal_neg_zero.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10233
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10234
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10235
* Theory Finite_Set and List: some lemmas have been generalized from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10236
sets to lattices:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10237
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10238
  fun_left_comm_idem_inter      ~> fun_left_comm_idem_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10239
  fun_left_comm_idem_union      ~> fun_left_comm_idem_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10240
  inter_Inter_fold_inter        ~> inf_Inf_fold_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10241
  union_Union_fold_union        ~> sup_Sup_fold_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10242
  Inter_fold_inter              ~> Inf_fold_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10243
  Union_fold_union              ~> Sup_fold_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10244
  inter_INTER_fold_inter        ~> inf_INFI_fold_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10245
  union_UNION_fold_union        ~> sup_SUPR_fold_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10246
  INTER_fold_inter              ~> INFI_fold_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10247
  UNION_fold_union              ~> SUPR_fold_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10248
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10249
* Theory "Complete_Lattice": lemmas top_def and bot_def have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10250
replaced by the more convenient lemmas Inf_empty and Sup_empty.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10251
Dropped lemmas Inf_insert_simp and Sup_insert_simp, which are subsumed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10252
by Inf_insert and Sup_insert.  Lemmas Inf_UNIV and Sup_UNIV replace
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10253
former Inf_Univ and Sup_Univ.  Lemmas inf_top_right and sup_bot_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10254
subsume inf_top and sup_bot respectively.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10255
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10256
* Reorganized theory Multiset: swapped notation of pointwise and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10257
multiset order:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10258
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10259
  - pointwise ordering is instance of class order with standard syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10260
    <= and <;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10261
  - multiset ordering has syntax <=# and <#; partial order properties
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10262
    are provided by means of interpretation with prefix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10263
    multiset_order;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10264
  - less duplication, less historical organization of sections,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10265
    conversion from associations lists to multisets, rudimentary code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10266
    generation;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10267
  - use insert_DiffM2 [symmetric] instead of elem_imp_eq_diff_union,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10268
    if needed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10269
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10270
Renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10271
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10272
  multiset_eq_conv_count_eq  ~>  multiset_ext_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10273
  multi_count_ext  ~>  multiset_ext
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10274
  diff_union_inverse2  ~>  diff_union_cancelR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10275
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10276
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10277
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10278
* Theory Permutation: replaced local "remove" by List.remove1.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10279
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10280
* Code generation: ML and OCaml code is decorated with signatures.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10281
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10282
* Theory List: added transpose.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10283
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10284
* Library/Nat_Bijection.thy is a collection of bijective functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10285
between nat and other types, which supersedes the older libraries
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10286
Library/Nat_Int_Bij.thy and HOLCF/NatIso.thy.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10287
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10288
  Constants:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10289
  Nat_Int_Bij.nat2_to_nat         ~> prod_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10290
  Nat_Int_Bij.nat_to_nat2         ~> prod_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10291
  Nat_Int_Bij.int_to_nat_bij      ~> int_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10292
  Nat_Int_Bij.nat_to_int_bij      ~> int_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10293
  Countable.pair_encode           ~> prod_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10294
  NatIso.prod2nat                 ~> prod_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10295
  NatIso.nat2prod                 ~> prod_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10296
  NatIso.sum2nat                  ~> sum_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10297
  NatIso.nat2sum                  ~> sum_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10298
  NatIso.list2nat                 ~> list_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10299
  NatIso.nat2list                 ~> list_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10300
  NatIso.set2nat                  ~> set_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10301
  NatIso.nat2set                  ~> set_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10302
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10303
  Lemmas:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10304
  Nat_Int_Bij.bij_nat_to_int_bij  ~> bij_int_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10305
  Nat_Int_Bij.nat2_to_nat_inj     ~> inj_prod_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10306
  Nat_Int_Bij.nat2_to_nat_surj    ~> surj_prod_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10307
  Nat_Int_Bij.nat_to_nat2_inj     ~> inj_prod_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10308
  Nat_Int_Bij.nat_to_nat2_surj    ~> surj_prod_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10309
  Nat_Int_Bij.i2n_n2i_id          ~> int_encode_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10310
  Nat_Int_Bij.n2i_i2n_id          ~> int_decode_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10311
  Nat_Int_Bij.surj_nat_to_int_bij ~> surj_int_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10312
  Nat_Int_Bij.surj_int_to_nat_bij ~> surj_int_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10313
  Nat_Int_Bij.inj_nat_to_int_bij  ~> inj_int_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10314
  Nat_Int_Bij.inj_int_to_nat_bij  ~> inj_int_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10315
  Nat_Int_Bij.bij_nat_to_int_bij  ~> bij_int_encode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10316
  Nat_Int_Bij.bij_int_to_nat_bij  ~> bij_int_decode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10317
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10318
* Sledgehammer:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10319
  - Renamed ATP commands:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10320
    atp_info     ~> sledgehammer running_atps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10321
    atp_kill     ~> sledgehammer kill_atps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10322
    atp_messages ~> sledgehammer messages
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10323
    atp_minimize ~> sledgehammer minimize
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10324
    print_atps   ~> sledgehammer available_atps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10325
    INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10326
  - Added user's manual ("isabelle doc sledgehammer").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10327
  - Added option syntax and "sledgehammer_params" to customize
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10328
    Sledgehammer's behavior.  See the manual for details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10329
  - Modified the Isar proof reconstruction code so that it produces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10330
    direct proofs rather than proofs by contradiction.  (This feature
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10331
    is still experimental.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10332
  - Made Isar proof reconstruction work for SPASS, remote ATPs, and in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10333
    full-typed mode.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10334
  - Added support for TPTP syntax for SPASS via the "spass_tptp" ATP.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10335
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10336
* Nitpick:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10337
  - Added and implemented "binary_ints" and "bits" options.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10338
  - Added "std" option and implemented support for nonstandard models.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10339
  - Added and implemented "finitize" option to improve the precision
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10340
    of infinite datatypes based on a monotonicity analysis.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10341
  - Added support for quotient types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10342
  - Added support for "specification" and "ax_specification"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10343
    constructs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10344
  - Added support for local definitions (for "function" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10345
    "termination" proofs).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10346
  - Added support for term postprocessors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10347
  - Optimized "Multiset.multiset" and "FinFun.finfun".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10348
  - Improved efficiency of "destroy_constrs" optimization.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10349
  - Fixed soundness bugs related to "destroy_constrs" optimization and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10350
    record getters.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10351
  - Fixed soundness bug related to higher-order constructors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10352
  - Fixed soundness bug when "full_descrs" is enabled.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10353
  - Improved precision of set constructs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10354
  - Added "atoms" option.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10355
  - Added cache to speed up repeated Kodkod invocations on the same
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10356
    problems.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10357
  - Renamed "MiniSatJNI", "zChaffJNI", "BerkMinAlloy", and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10358
    "SAT4JLight" to "MiniSat_JNI", "zChaff_JNI", "BerkMin_Alloy", and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10359
    "SAT4J_Light".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10360
  - Removed "skolemize", "uncurry", "sym_break", "flatten_prop",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10361
    "sharing_depth", and "show_skolems" options.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10362
  - Removed "nitpick_intro" attribute.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10363
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10364
* Method "induct" now takes instantiations of the form t, where t is not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10365
  a variable, as a shorthand for "x == t", where x is a fresh variable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10366
  If this is not intended, t has to be enclosed in parentheses.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10367
  By default, the equalities generated by definitional instantiations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10368
  are pre-simplified, which may cause parameters of inductive cases
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10369
  to disappear, or may even delete some of the inductive cases.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10370
  Use "induct (no_simp)" instead of "induct" to restore the old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10371
  behaviour. The (no_simp) option is also understood by the "cases"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10372
  and "nominal_induct" methods, which now perform pre-simplification, too.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10373
  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10374
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10375
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10376
*** HOLCF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10377
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10378
* Variable names in lemmas generated by the domain package have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10379
changed; the naming scheme is now consistent with the HOL datatype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10380
package.  Some proof scripts may be affected, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10381
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10382
* The domain package no longer defines the function "foo_copy" for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10383
recursive domain "foo".  The reach lemma is now stated directly in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10384
terms of "foo_take".  Lemmas and proofs that mention "foo_copy" must
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10385
be reformulated in terms of "foo_take", INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10386
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10387
* Most definedness lemmas generated by the domain package (previously
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10388
of the form "x ~= UU ==> foo$x ~= UU") now have an if-and-only-if form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10389
like "foo$x = UU <-> x = UU", which works better as a simp rule.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10390
Proofs that used definedness lemmas as intro rules may break,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10391
potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10392
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10393
* Induction and casedist rules generated by the domain package now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10394
declare proper case_names (one called "bottom", and one named for each
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10395
constructor).  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10396
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10397
* For mutually-recursive domains, separate "reach" and "take_lemma"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10398
rules are generated for each domain, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10399
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10400
  foo_bar.reach       ~> foo.reach  bar.reach
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10401
  foo_bar.take_lemmas ~> foo.take_lemma  bar.take_lemma
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10402
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10403
* Some lemmas generated by the domain package have been renamed for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10404
consistency with the datatype package, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10405
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10406
  foo.ind        ~> foo.induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10407
  foo.finite_ind ~> foo.finite_induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10408
  foo.coind      ~> foo.coinduct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10409
  foo.casedist   ~> foo.exhaust
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10410
  foo.exhaust    ~> foo.nchotomy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10411
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10412
* For consistency with other definition packages, the fixrec package
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10413
now generates qualified theorem names, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10414
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10415
  foo_simps  ~> foo.simps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10416
  foo_unfold ~> foo.unfold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10417
  foo_induct ~> foo.induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10418
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10419
* The "fixrec_simp" attribute has been removed.  The "fixrec_simp"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10420
method and internal fixrec proofs now use the default simpset instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10421
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10422
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10423
* The "contlub" predicate has been removed.  Proof scripts should use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10424
lemma contI2 in place of monocontlub2cont, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10425
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10426
* The "admw" predicate has been removed, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10427
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10428
* The constants cpair, cfst, and csnd have been removed in favor of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10429
Pair, fst, and snd from Isabelle/HOL, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10430
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10431
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10432
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10433
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10434
* Antiquotations for basic formal entities:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10435
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10436
    @{class NAME}         -- type class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10437
    @{class_syntax NAME}  -- syntax representation of the above
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10438
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10439
    @{type_name NAME}     -- logical type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10440
    @{type_abbrev NAME}   -- type abbreviation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10441
    @{nonterminal NAME}   -- type of concrete syntactic category
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10442
    @{type_syntax NAME}   -- syntax representation of any of the above
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10444
    @{const_name NAME}    -- logical constant (INCOMPATIBILITY)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10445
    @{const_abbrev NAME}  -- abbreviated constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10446
    @{const_syntax NAME}  -- syntax representation of any of the above
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10447
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10448
* Antiquotation @{syntax_const NAME} ensures that NAME refers to a raw
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10449
syntax constant (cf. 'syntax' command).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10450
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10451
* Antiquotation @{make_string} inlines a function to print arbitrary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10452
values similar to the ML toplevel.  The result is compiler dependent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10453
and may fall back on "?" in certain situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10454
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10455
* Diagnostic commands 'ML_val' and 'ML_command' may refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10456
antiquotations @{Isar.state} and @{Isar.goal}.  This replaces impure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10457
Isar.state() and Isar.goal(), which belong to the old TTY loop and do
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10458
not work with the asynchronous Isar document model.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10459
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10460
* Configuration options now admit dynamic default values, depending on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10461
the context or even global references.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10462
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10463
* SHA1.digest digests strings according to SHA-1 (see RFC 3174).  It
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10464
uses an efficient external library if available (for Poly/ML).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10465
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10466
* Renamed some important ML structures, while keeping the old names
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10467
for some time as aliases within the structure Legacy:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10468
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10469
  OuterKeyword  ~>  Keyword
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10470
  OuterLex      ~>  Token
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10471
  OuterParse    ~>  Parse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10472
  OuterSyntax   ~>  Outer_Syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10473
  PrintMode     ~>  Print_Mode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10474
  SpecParse     ~>  Parse_Spec
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10475
  ThyInfo       ~>  Thy_Info
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10476
  ThyLoad       ~>  Thy_Load
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10477
  ThyOutput     ~>  Thy_Output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10478
  TypeInfer     ~>  Type_Infer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10479
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10480
Note that "open Legacy" simplifies porting of sources, but forgetting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10481
to remove it again will complicate porting again in the future.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10482
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10483
* Most operations that refer to a global context are named
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10484
accordingly, e.g. Simplifier.global_context or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10485
ProofContext.init_global.  There are some situations where a global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10486
context actually works, but under normal circumstances one needs to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10487
pass the proper local context through the code!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10488
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10489
* Discontinued old TheoryDataFun with its copy/init operation -- data
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10490
needs to be pure.  Functor Theory_Data_PP retains the traditional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10491
Pretty.pp argument to merge, which is absent in the standard
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10492
Theory_Data version.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10493
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10494
* Sorts.certify_sort and derived "cert" operations for types and terms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10495
no longer minimize sorts.  Thus certification at the boundary of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10496
inference kernel becomes invariant under addition of class relations,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10497
which is an important monotonicity principle.  Sorts are now minimized
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10498
in the syntax layer only, at the boundary between the end-user and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10499
system.  Subtle INCOMPATIBILITY, may have to use Sign.minimize_sort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10500
explicitly in rare situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10501
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10502
* Renamed old-style Drule.standard to Drule.export_without_context, to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10503
emphasize that this is in no way a standard operation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10504
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10505
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10506
* Subgoal.FOCUS (and variants): resulting goal state is normalized as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10507
usual for resolution.  Rare INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10508
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10509
* Renamed varify/unvarify operations to varify_global/unvarify_global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10510
to emphasize that these only work in a global situation (which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10511
quite rare).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10512
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10513
* Curried take and drop in library.ML; negative length is interpreted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10514
as infinity (as in chop).  Subtle INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10515
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10516
* Proof terms: type substitutions on proof constants now use canonical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10517
order of type variables.  INCOMPATIBILITY for tools working with proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10518
terms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10519
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10520
* Raw axioms/defs may no longer carry sort constraints, and raw defs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10521
may no longer carry premises.  User-level specifications are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10522
transformed accordingly by Thm.add_axiom/add_def.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10523
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10524
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10525
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10526
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10527
* Discontinued special HOL_USEDIR_OPTIONS for the main HOL image;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10528
ISABELLE_USEDIR_OPTIONS applies uniformly to all sessions.  Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10529
proof terms are enabled unconditionally in the new HOL-Proofs image.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10531
* Discontinued old ISABELLE and ISATOOL environment settings (legacy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10532
feature since Isabelle2009).  Use ISABELLE_PROCESS and ISABELLE_TOOL,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10533
respectively.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10534
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10535
* Old lib/scripts/polyml-platform is superseded by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10536
ISABELLE_PLATFORM setting variable, which defaults to the 32 bit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10537
variant, even on a 64 bit machine.  The following example setting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10538
prefers 64 bit if available:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10539
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10540
  ML_PLATFORM="${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM}"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10541
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10542
* The preliminary Isabelle/jEdit application demonstrates the emerging
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10543
Isabelle/Scala layer for advanced prover interaction and integration.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10544
See src/Tools/jEdit or "isabelle jedit" provided by the properly built
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10545
component.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10546
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10547
* "IsabelleText" is a Unicode font derived from Bitstream Vera Mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10548
and Bluesky TeX fonts.  It provides the usual Isabelle symbols,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10549
similar to the default assignment of the document preparation system
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10550
(cf. isabellesym.sty).  The Isabelle/Scala class Isabelle_System
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10551
provides some operations for direct access to the font without asking
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10552
the user for manual installation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10553
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10554
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10555
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10556
New in Isabelle2009-1 (December 2009)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10557
-------------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10558
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10559
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10560
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10561
* Discontinued old form of "escaped symbols" such as \\<forall>.  Only
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10562
one backslash should be used, even in ML sources.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10563
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10564
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10565
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10566
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10567
* Locale interpretation propagates mixins along the locale hierarchy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10568
The currently only available mixins are the equations used to map
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10569
local definitions to terms of the target domain of an interpretation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10570
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10571
* Reactivated diagnostic command 'print_interps'.  Use "print_interps
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10572
loc" to print all interpretations of locale "loc" in the theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10573
Interpretations in proofs are not shown.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10574
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10575
* Thoroughly revised locales tutorial.  New section on conditional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10576
interpretation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10577
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10578
* On instantiation of classes, remaining undefined class parameters
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10579
are formally declared.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10580
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10581
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10582
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10583
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10584
* New generalized style concept for printing terms: @{foo (style) ...}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10585
instead of @{foo_style style ...}  (old form is still retained for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10586
backward compatibility).  Styles can be also applied for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10587
antiquotations prop, term_type and typeof.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10588
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10589
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10590
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10591
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10592
* New proof method "smt" for a combination of first-order logic with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10593
equality, linear and nonlinear (natural/integer/real) arithmetic, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10594
fixed-size bitvectors; there is also basic support for higher-order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10595
features (esp. lambda abstractions).  It is an incomplete decision
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10596
procedure based on external SMT solvers using the oracle mechanism;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10597
for the SMT solver Z3, this method is proof-producing.  Certificates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10598
are provided to avoid calling the external solvers solely for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10599
re-checking proofs.  Due to a remote SMT service there is no need for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10600
installing SMT solvers locally.  See src/HOL/SMT.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10601
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10602
* New commands to load and prove verification conditions generated by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10603
the Boogie program verifier or derived systems (e.g. the Verifying C
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10604
Compiler (VCC) or Spec#).  See src/HOL/Boogie.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10605
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10606
* New counterexample generator tool 'nitpick' based on the Kodkod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10607
relational model finder.  See src/HOL/Tools/Nitpick and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10608
src/HOL/Nitpick_Examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10609
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10610
* New commands 'code_pred' and 'values' to invoke the predicate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10611
compiler and to enumerate values of inductive predicates.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10612
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10613
* A tabled implementation of the reflexive transitive closure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10614
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10615
* New implementation of quickcheck uses generic code generator;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10616
default generators are provided for all suitable HOL types, records
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10617
and datatypes.  Old quickcheck can be re-activated importing theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10618
Library/SML_Quickcheck.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10619
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10620
* New testing tool Mirabelle for automated proof tools.  Applies
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10621
several tools and tactics like sledgehammer, metis, or quickcheck, to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10622
every proof step in a theory.  To be used in batch mode via the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10623
"mirabelle" utility.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10624
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10625
* New proof method "sos" (sum of squares) for nonlinear real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10626
arithmetic (originally due to John Harison). It requires theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10627
Library/Sum_Of_Squares.  It is not a complete decision procedure but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10628
works well in practice on quantifier-free real arithmetic with +, -,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10629
*, ^, =, <= and <, i.e. boolean combinations of equalities and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10630
inequalities between polynomials.  It makes use of external
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10631
semidefinite programming solvers.  Method "sos" generates a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10632
certificate that can be pasted into the proof thus avoiding the need
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10633
to call an external tool every time the proof is checked.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10634
src/HOL/Library/Sum_Of_Squares.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10635
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10636
* New method "linarith" invokes existing linear arithmetic decision
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10637
procedure only.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10638
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10639
* New command 'atp_minimal' reduces result produced by Sledgehammer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10640
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10641
* New Sledgehammer option "Full Types" in Proof General settings menu.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10642
Causes full type information to be output to the ATPs.  This slows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10643
ATPs down considerably but eliminates a source of unsound "proofs"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10644
that fail later.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10645
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10646
* New method "metisFT": A version of metis that uses full type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10647
information in order to avoid failures of proof reconstruction.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10648
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10649
* New evaluator "approximate" approximates an real valued term using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10650
the same method as the approximation method.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10651
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10652
* Method "approximate" now supports arithmetic expressions as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10653
boundaries of intervals and implements interval splitting and Taylor
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10654
series expansion.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10655
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10656
* ML antiquotation @{code_datatype} inserts definition of a datatype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10657
generated by the code generator; e.g. see src/HOL/Predicate.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10658
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10659
* New theory SupInf of the supremum and infimum operators for sets of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10660
reals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10661
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10662
* New theory Probability, which contains a development of measure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10663
theory, eventually leading to Lebesgue integration and probability.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10664
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10665
* Extended Multivariate Analysis to include derivation and Brouwer's
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10666
fixpoint theorem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10667
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10668
* Reorganization of number theory, INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10669
  - new number theory development for nat and int, in theories Divides
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10670
    and GCD as well as in new session Number_Theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10671
  - some constants and facts now suffixed with _nat and _int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10672
    accordingly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10673
  - former session NumberTheory now named Old_Number_Theory, including
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10674
    theories Legacy_GCD and Primes (prefer Number_Theory if possible)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10675
  - moved theory Pocklington from src/HOL/Library to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10676
    src/HOL/Old_Number_Theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10677
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10678
* Theory GCD includes functions Gcd/GCD and Lcm/LCM for the gcd and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10679
lcm of finite and infinite sets. It is shown that they form a complete
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10680
lattice.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10681
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10682
* Class semiring_div requires superclass no_zero_divisors and proof of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10683
div_mult_mult1; theorems div_mult_mult1, div_mult_mult2,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10684
div_mult_mult1_if, div_mult_mult1 and div_mult_mult2 have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10685
generalized to class semiring_div, subsuming former theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10686
zdiv_zmult_zmult1, zdiv_zmult_zmult1_if, zdiv_zmult_zmult1 and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10687
zdiv_zmult_zmult2.  div_mult_mult1 is now [simp] by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10688
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10689
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10690
* Refinements to lattice classes and sets:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10691
  - less default intro/elim rules in locale variant, more default
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10692
    intro/elim rules in class variant: more uniformity
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10693
  - lemma ge_sup_conv renamed to le_sup_iff, in accordance with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10694
    le_inf_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10695
  - dropped lemma alias inf_ACI for inf_aci (same for sup_ACI and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10696
    sup_aci)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10697
  - renamed ACI to inf_sup_aci
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10698
  - new class "boolean_algebra"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10699
  - class "complete_lattice" moved to separate theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10700
    "Complete_Lattice"; corresponding constants (and abbreviations)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10701
    renamed and with authentic syntax:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10702
    Set.Inf ~>    Complete_Lattice.Inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10703
    Set.Sup ~>    Complete_Lattice.Sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10704
    Set.INFI ~>   Complete_Lattice.INFI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10705
    Set.SUPR ~>   Complete_Lattice.SUPR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10706
    Set.Inter ~>  Complete_Lattice.Inter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10707
    Set.Union ~>  Complete_Lattice.Union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10708
    Set.INTER ~>  Complete_Lattice.INTER
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10709
    Set.UNION ~>  Complete_Lattice.UNION
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10710
  - authentic syntax for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10711
    Set.Pow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10712
    Set.image
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10713
  - mere abbreviations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10714
    Set.empty               (for bot)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10715
    Set.UNIV                (for top)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10716
    Set.inter               (for inf, formerly Set.Int)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10717
    Set.union               (for sup, formerly Set.Un)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10718
    Complete_Lattice.Inter  (for Inf)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10719
    Complete_Lattice.Union  (for Sup)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10720
    Complete_Lattice.INTER  (for INFI)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10721
    Complete_Lattice.UNION  (for SUPR)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10722
  - object-logic definitions as far as appropriate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10723
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10724
INCOMPATIBILITY.  Care is required when theorems Int_subset_iff or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10725
Un_subset_iff are explicitly deleted as default simp rules; then also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10726
their lattice counterparts le_inf_iff and le_sup_iff have to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10727
deleted to achieve the desired effect.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10728
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10729
* Rules inf_absorb1, inf_absorb2, sup_absorb1, sup_absorb2 are no simp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10730
rules by default any longer; the same applies to min_max.inf_absorb1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10731
etc.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10732
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10733
* Rules sup_Int_eq and sup_Un_eq are no longer declared as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10734
pred_set_conv by default.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10735
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10736
* Power operations on relations and functions are now one dedicated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10737
constant "compow" with infix syntax "^^".  Power operation on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10738
multiplicative monoids retains syntax "^" and is now defined generic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10739
in class power.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10740
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10741
* Relation composition "R O S" now has a more standard argument order:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10742
"R O S = {(x, z). EX y. (x, y) : R & (y, z) : S}".  INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10743
rewrite propositions with "S O R" --> "R O S". Proofs may occasionally
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10744
break, since the O_assoc rule was not rewritten like this.  Fix using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10745
O_assoc[symmetric].  The same applies to the curried version "R OO S".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10746
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10747
* Function "Inv" is renamed to "inv_into" and function "inv" is now an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10748
abbreviation for "inv_into UNIV".  Lemmas are renamed accordingly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10749
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10751
* Most rules produced by inductive and datatype package have mandatory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10752
prefixes.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10753
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10754
* Changed "DERIV_intros" to a dynamic fact, which can be augmented by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10755
the attribute of the same name.  Each of the theorems in the list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10756
DERIV_intros assumes composition with an additional function and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10757
matches a variable to the derivative, which has to be solved by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10758
Simplifier.  Hence (auto intro!: DERIV_intros) computes the derivative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10759
of most elementary terms.  Former Maclauren.DERIV_tac and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10760
Maclauren.deriv_tac should be replaced by (auto intro!: DERIV_intros).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10761
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10762
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10763
* Code generator attributes follow the usual underscore convention:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10764
    code_unfold     replaces    code unfold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10765
    code_post       replaces    code post
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10766
    etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10767
  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10768
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10769
* Renamed methods:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10770
    sizechange -> size_change
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10771
    induct_scheme -> induction_schema
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10772
  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10773
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10774
* Discontinued abbreviation "arbitrary" of constant "undefined".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10775
INCOMPATIBILITY, use "undefined" directly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10776
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10777
* Renamed theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10778
    Suc_eq_add_numeral_1 -> Suc_eq_plus1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10779
    Suc_eq_add_numeral_1_left -> Suc_eq_plus1_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10780
    Suc_plus1 -> Suc_eq_plus1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10781
    *anti_sym -> *antisym*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10782
    vector_less_eq_def -> vector_le_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10783
  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10784
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10785
* Added theorem List.map_map as [simp].  Removed List.map_compose.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10786
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10787
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10788
* Removed predicate "M hassize n" (<--> card M = n & finite M).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10789
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10790
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10791
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10792
*** HOLCF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10793
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10794
* Theory Representable defines a class "rep" of domains that are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10795
representable (via an ep-pair) in the universal domain type "udom".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10796
Instances are provided for all type constructors defined in HOLCF.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10797
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10798
* The 'new_domain' command is a purely definitional version of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10799
domain package, for representable domains.  Syntax is identical to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10800
old domain package.  The 'new_domain' package also supports indirect
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10801
recursion using previously-defined type constructors.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10802
src/HOLCF/ex/New_Domain.thy for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10803
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10804
* Method "fixrec_simp" unfolds one step of a fixrec-defined constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10805
on the left-hand side of an equation, and then performs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10806
simplification.  Rewriting is done using rules declared with the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10807
"fixrec_simp" attribute.  The "fixrec_simp" method is intended as a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10808
replacement for "fixpat"; see src/HOLCF/ex/Fixrec_ex.thy for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10809
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10810
* The pattern-match compiler in 'fixrec' can now handle constructors
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10811
with HOL function types.  Pattern-match combinators for the Pair
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10812
constructor are pre-configured.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10813
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10814
* The 'fixrec' package now produces better fixed-point induction rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10815
for mutually-recursive definitions:  Induction rules have conclusions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10816
of the form "P foo bar" instead of "P <foo, bar>".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10817
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10818
* The constant "sq_le" (with infix syntax "<<" or "\<sqsubseteq>") has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10819
been renamed to "below".  The name "below" now replaces "less" in many
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10820
theorem names.  (Legacy theorem names using "less" are still supported
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10821
as well.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10822
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10823
* The 'fixrec' package now supports "bottom patterns".  Bottom
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10824
patterns can be used to generate strictness rules, or to make
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10825
functions more strict (much like the bang-patterns supported by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10826
Glasgow Haskell Compiler).  See src/HOLCF/ex/Fixrec_ex.thy for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10827
examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10828
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10829
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10830
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10831
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10832
* Support for Poly/ML 5.3.0, with improved reporting of compiler
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10833
errors and run-time exceptions, including detailed source positions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10834
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10835
* Structure Name_Space (formerly NameSpace) now manages uniquely
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10836
identified entries, with some additional information such as source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10837
position, logical grouping etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10838
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10839
* Theory and context data is now introduced by the simplified and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10840
modernized functors Theory_Data, Proof_Data, Generic_Data.  Data needs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10841
to be pure, but the old TheoryDataFun for mutable data (with explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10842
copy operation) is still available for some time.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10843
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10844
* Structure Synchronized (cf. src/Pure/Concurrent/synchronized.ML)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10845
provides a high-level programming interface to synchronized state
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10846
variables with atomic update.  This works via pure function
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10847
application within a critical section -- its runtime should be as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10848
short as possible; beware of deadlocks if critical code is nested,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10849
either directly or indirectly via other synchronized variables!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10850
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10851
* Structure Unsynchronized (cf. src/Pure/ML-Systems/unsynchronized.ML)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10852
wraps raw ML references, explicitly indicating their non-thread-safe
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10853
behaviour.  The Isar toplevel keeps this structure open, to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10854
accommodate Proof General as well as quick and dirty interactive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10855
experiments with references.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10856
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10857
* PARALLEL_CHOICE and PARALLEL_GOALS provide basic support for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10858
parallel tactical reasoning.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10859
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10860
* Tacticals Subgoal.FOCUS, Subgoal.FOCUS_PREMS, Subgoal.FOCUS_PARAMS
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10861
are similar to SUBPROOF, but are slightly more flexible: only the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10862
specified parts of the subgoal are imported into the context, and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10863
body tactic may introduce new subgoals and schematic variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10864
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10865
* Old tactical METAHYPS, which does not observe the proof context, has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10866
been renamed to Old_Goals.METAHYPS and awaits deletion.  Use SUBPROOF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10867
or Subgoal.FOCUS etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10868
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10869
* Renamed functor TableFun to Table, and GraphFun to Graph.  (Since
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10870
functors have their own ML name space there is no point to mark them
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10871
separately.)  Minor INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10872
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10873
* Renamed NamedThmsFun to Named_Thms.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10874
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10875
* Renamed several structures FooBar to Foo_Bar.  Occasional,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10876
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10877
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10878
* Operations of structure Skip_Proof no longer require quick_and_dirty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10879
mode, which avoids critical setmp.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10880
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10881
* Eliminated old Attrib.add_attributes, Method.add_methods and related
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10882
combinators for "args".  INCOMPATIBILITY, need to use simplified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10883
Attrib/Method.setup introduced in Isabelle2009.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10884
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10885
* Proper context for simpset_of, claset_of, clasimpset_of.  May fall
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10886
back on global_simpset_of, global_claset_of, global_clasimpset_of as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10887
last resort.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10888
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10889
* Display.pretty_thm now requires a proper context (cf. former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10890
ProofContext.pretty_thm).  May fall back on Display.pretty_thm_global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10891
or even Display.pretty_thm_without_context as last resort.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10892
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10893
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10894
* Discontinued Display.pretty_ctyp/cterm etc.  INCOMPATIBILITY, use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10895
Syntax.pretty_typ/term directly, preferably with proper context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10896
instead of global theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10897
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10899
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10900
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10901
* Further fine tuning of parallel proof checking, scales up to 8 cores
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10902
(max. speedup factor 5.0).  See also Goal.parallel_proofs in ML and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10903
usedir option -q.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10904
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10905
* Support for additional "Isabelle components" via etc/components, see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10906
also the system manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10907
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10908
* The isabelle makeall tool now operates on all components with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10909
IsaMakefile, not just hardwired "logics".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10910
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10911
* Removed "compress" option from isabelle-process and isabelle usedir;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10912
this is always enabled.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10913
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10914
* Discontinued support for Poly/ML 4.x versions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10915
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10916
* Isabelle tool "wwwfind" provides web interface for 'find_theorems'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10917
on a given logic image.  This requires the lighttpd webserver and is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10918
currently supported on Linux only.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10919
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10920
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10921
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10922
New in Isabelle2009 (April 2009)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10923
--------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10924
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10925
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10926
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10927
* Simplified main Isabelle executables, with less surprises on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10928
case-insensitive file-systems (such as Mac OS).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10929
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10930
  - The main Isabelle tool wrapper is now called "isabelle" instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10931
    "isatool."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10932
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10933
  - The former "isabelle" alias for "isabelle-process" has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10934
    removed (should rarely occur to regular users).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10935
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10936
  - The former "isabelle-interface" and its alias "Isabelle" have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10937
    removed (interfaces are now regular Isabelle tools).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10938
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10939
Within scripts and make files, the Isabelle environment variables
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10940
ISABELLE_TOOL and ISABELLE_PROCESS replace old ISATOOL and ISABELLE,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10941
respectively.  (The latter are still available as legacy feature.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10942
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10943
The old isabelle-interface wrapper could react in confusing ways if
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10944
the interface was uninstalled or changed otherwise.  Individual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10945
interface tool configuration is now more explicit, see also the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10946
Isabelle system manual.  In particular, Proof General is now available
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10947
via "isabelle emacs".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10948
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10949
INCOMPATIBILITY, need to adapt derivative scripts.  Users may need to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10950
purge installed copies of Isabelle executables and re-run "isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10951
install -p ...", or use symlinks.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10952
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10953
* The default for ISABELLE_HOME_USER is now ~/.isabelle instead of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10954
old ~/isabelle, which was slightly non-standard and apt to cause
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10955
surprises on case-insensitive file-systems (such as Mac OS).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10956
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10957
INCOMPATIBILITY, need to move existing ~/isabelle/etc,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10958
~/isabelle/heaps, ~/isabelle/browser_info to the new place.  Special
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10959
care is required when using older releases of Isabelle.  Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10960
ISABELLE_HOME_USER can be changed in Isabelle/etc/settings of any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10961
Isabelle distribution, in order to use the new ~/.isabelle uniformly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10962
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10963
* Proofs of fully specified statements are run in parallel on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10964
multi-core systems.  A speedup factor of 2.5 to 3.2 can be expected on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10965
a regular 4-core machine, if the initial heap space is made reasonably
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10966
large (cf. Poly/ML option -H).  (Requires Poly/ML 5.2.1 or later.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10967
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10968
* The main reference manuals ("isar-ref", "implementation", and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10969
"system") have been updated and extended.  Formally checked references
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10970
as hyperlinks are now available uniformly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10971
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10972
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10973
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10974
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10975
* Complete re-implementation of locales.  INCOMPATIBILITY in several
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10976
respects.  The most important changes are listed below.  See the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10977
Tutorial on Locales ("locales" manual) for details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10978
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10979
- In locale expressions, instantiation replaces renaming.  Parameters
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10980
must be declared in a for clause.  To aid compatibility with previous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10981
parameter inheritance, in locale declarations, parameters that are not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10982
'touched' (instantiation position "_" or omitted) are implicitly added
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10983
with their syntax at the beginning of the for clause.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10984
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10985
- Syntax from abbreviations and definitions in locales is available in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10986
locale expressions and context elements.  The latter is particularly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10987
useful in locale declarations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10988
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10989
- More flexible mechanisms to qualify names generated by locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10990
expressions.  Qualifiers (prefixes) may be specified in locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10991
expressions, and can be marked as mandatory (syntax: "name!:") or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10992
optional (syntax "name?:").  The default depends for plain "name:"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10993
depends on the situation where a locale expression is used: in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10994
commands 'locale' and 'sublocale' prefixes are optional, in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10995
'interpretation' and 'interpret' prefixes are mandatory.  The old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10996
implicit qualifiers derived from the parameter names of a locale are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10997
no longer generated.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10998
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 10999
- Command "sublocale l < e" replaces "interpretation l < e".  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11000
instantiation clause in "interpretation" and "interpret" (square
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11001
brackets) is no longer available.  Use locale expressions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11002
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11003
- When converting proof scripts, mandatory qualifiers in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11004
'interpretation' and 'interpret' should be retained by default, even
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11005
if this is an INCOMPATIBILITY compared to former behavior.  In the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11006
worst case, use the "name?:" form for non-mandatory ones.  Qualifiers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11007
in locale expressions range over a single locale instance only.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11008
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11009
- Dropped locale element "includes".  This is a major INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11010
In existing theorem specifications replace the includes element by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11011
respective context elements of the included locale, omitting those
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11012
that are already present in the theorem specification.  Multiple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11013
assume elements of a locale should be replaced by a single one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11014
involving the locale predicate.  In the proof body, declarations (most
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11015
notably theorems) may be regained by interpreting the respective
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11016
locales in the proof context as required (command "interpret").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11017
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11018
If using "includes" in replacement of a target solely because the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11019
parameter types in the theorem are not as general as in the target,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11020
consider declaring a new locale with additional type constraints on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11021
the parameters (context element "constrains").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11022
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11023
- Discontinued "locale (open)".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11024
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11025
- Locale interpretation commands no longer attempt to simplify goal.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11026
INCOMPATIBILITY: in rare situations the generated goal differs.  Use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11027
methods intro_locales and unfold_locales to clarify.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11028
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11029
- Locale interpretation commands no longer accept interpretation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11030
attributes.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11031
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11032
* Class declaration: so-called "base sort" must not be given in import
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11033
list any longer, but is inferred from the specification.  Particularly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11034
in HOL, write
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11035
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11036
    class foo = ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11037
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11038
instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11039
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11040
    class foo = type + ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11041
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11042
* Class target: global versions of theorems stemming do not carry a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11043
parameter prefix any longer.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11044
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11045
* Class 'instance' command no longer accepts attached definitions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11046
INCOMPATIBILITY, use proper 'instantiation' target instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11047
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11048
* Recovered hiding of consts, which was accidentally broken in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11049
Isabelle2007.  Potential INCOMPATIBILITY, ``hide const c'' really
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11050
makes c inaccessible; consider using ``hide (open) const c'' instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11051
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11052
* Slightly more coherent Pure syntax, with updated documentation in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11053
isar-ref manual.  Removed locales meta_term_syntax and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11054
meta_conjunction_syntax: TERM and &&& (formerly &&) are now permanent,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11055
INCOMPATIBILITY in rare situations.  Note that &&& should not be used
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11056
directly in regular applications.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11057
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11058
* There is a new syntactic category "float_const" for signed decimal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11059
fractions (e.g. 123.45 or -123.45).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11060
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11061
* Removed exotic 'token_translation' command.  INCOMPATIBILITY, use ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11062
interface with 'setup' command instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11063
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11064
* Command 'local_setup' is similar to 'setup', but operates on a local
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11065
theory context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11066
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11067
* The 'axiomatization' command now only works within a global theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11068
context.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11069
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11070
* Goal-directed proof now enforces strict proof irrelevance wrt. sort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11071
hypotheses.  Sorts required in the course of reasoning need to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11072
covered by the constraints in the initial statement, completed by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11073
type instance information of the background theory.  Non-trivial sort
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11074
hypotheses, which rarely occur in practice, may be specified via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11075
vacuous propositions of the form SORT_CONSTRAINT('a::c).  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11076
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11077
  lemma assumes "SORT_CONSTRAINT('a::empty)" shows False ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11078
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11079
The result contains an implicit sort hypotheses as before --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11080
SORT_CONSTRAINT premises are eliminated as part of the canonical rule
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11081
normalization.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11082
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11083
* Generalized Isar history, with support for linear undo, direct state
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11084
addressing etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11085
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11086
* Changed defaults for unify configuration options:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11088
  unify_trace_bound = 50 (formerly 25)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11089
  unify_search_bound = 60 (formerly 30)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11090
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11091
* Different bookkeeping for code equations (INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11092
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11093
  a) On theory merge, the last set of code equations for a particular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11094
     constant is taken (in accordance with the policy applied by other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11095
     parts of the code generator framework).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11096
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11097
  b) Code equations stemming from explicit declarations (e.g. code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11098
     attribute) gain priority over default code equations stemming
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11099
     from definition, primrec, fun etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11100
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11101
* Keyword 'code_exception' now named 'code_abort'.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11102
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11103
* Unified theorem tables for both code generators.  Thus [code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11104
func] has disappeared and only [code] remains.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11105
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11106
* Command 'find_consts' searches for constants based on type and name
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11107
patterns, e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11108
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11109
    find_consts "_ => bool"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11110
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11111
By default, matching is against subtypes, but it may be restricted to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11112
the whole type.  Searching by name is possible.  Multiple queries are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11113
conjunctive and queries may be negated by prefixing them with a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11114
hyphen:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11115
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11116
    find_consts strict: "_ => bool" name: "Int" -"int => int"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11117
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11118
* New 'find_theorems' criterion "solves" matches theorems that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11119
directly solve the current goal (modulo higher-order unification).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11120
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11121
* Auto solve feature for main theorem statements: whenever a new goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11122
is stated, "find_theorems solves" is called; any theorems that could
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11123
solve the lemma directly are listed as part of the goal state.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11124
Cf. associated options in Proof General Isabelle settings menu,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11125
enabled by default, with reasonable timeout for pathological cases of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11126
higher-order unification.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11127
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11128
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11129
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11130
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11131
* Antiquotation @{lemma} now imitates a regular terminal proof,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11132
demanding keyword 'by' and supporting the full method expression
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11133
syntax just like the Isar command 'by'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11134
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11135
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11136
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11137
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11138
* Integrated main parts of former image HOL-Complex with HOL.  Entry
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11139
points Main and Complex_Main remain as before.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11140
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11141
* Logic image HOL-Plain provides a minimal HOL with the most important
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11142
tools available (inductive, datatype, primrec, ...).  This facilitates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11143
experimentation and tool development.  Note that user applications
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11144
(and library theories) should never refer to anything below theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11145
Main, as before.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11146
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11147
* Logic image HOL-Main stops at theory Main, and thus facilitates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11148
experimentation due to shorter build times.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11149
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11150
* Logic image HOL-NSA contains theories of nonstandard analysis which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11151
were previously part of former HOL-Complex.  Entry point Hyperreal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11152
remains valid, but theories formerly using Complex_Main should now use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11153
new entry point Hypercomplex.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11154
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11155
* Generic ATP manager for Sledgehammer, based on ML threads instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11156
Posix processes.  Avoids potentially expensive forking of the ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11157
process.  New thread-based implementation also works on non-Unix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11158
platforms (Cygwin).  Provers are no longer hardwired, but defined
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11159
within the theory via plain ML wrapper functions.  Basic Sledgehammer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11160
commands are covered in the isar-ref manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11161
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11162
* Wrapper scripts for remote SystemOnTPTP service allows to use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11163
sledgehammer without local ATP installation (Vampire etc.). Other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11164
provers may be included via suitable ML wrappers, see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11165
src/HOL/ATP_Linkup.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11166
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11167
* ATP selection (E/Vampire/Spass) is now via Proof General's settings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11168
menu.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11169
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11170
* The metis method no longer fails because the theorem is too trivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11171
(contains the empty clause).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11172
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11173
* The metis method now fails in the usual manner, rather than raising
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11174
an exception, if it determines that it cannot prove the theorem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11175
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11176
* Method "coherent" implements a prover for coherent logic (see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11177
src/Tools/coherent.ML).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11178
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11179
* Constants "undefined" and "default" replace "arbitrary".  Usually
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11180
"undefined" is the right choice to replace "arbitrary", though
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11181
logically there is no difference.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11182
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11183
* Command "value" now integrates different evaluation mechanisms.  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11184
result of the first successful evaluation mechanism is printed.  In
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11185
square brackets a particular named evaluation mechanisms may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11186
specified (currently, [SML], [code] or [nbe]).  See further
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11187
src/HOL/ex/Eval_Examples.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11188
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11189
* Normalization by evaluation now allows non-leftlinear equations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11190
Declare with attribute [code nbe].
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11191
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11192
* Methods "case_tac" and "induct_tac" now refer to the very same rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11193
as the structured Isar versions "cases" and "induct", cf. the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11194
corresponding "cases" and "induct" attributes.  Mutual induction rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11195
are now presented as a list of individual projections
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11196
(e.g. foo_bar.inducts for types foo and bar); the old format with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11197
explicit HOL conjunction is no longer supported.  INCOMPATIBILITY, in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11198
rare situations a different rule is selected --- notably nested tuple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11199
elimination instead of former prod.exhaust: use explicit (case_tac t
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11200
rule: prod.exhaust) here.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11201
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11202
* Attributes "cases", "induct", "coinduct" support "del" option.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11203
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11204
* Removed fact "case_split_thm", which duplicates "case_split".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11205
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11206
* The option datatype has been moved to a new theory Option.  Renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11207
option_map to Option.map, and o2s to Option.set, INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11208
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11209
* New predicate "strict_mono" classifies strict functions on partial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11210
orders.  With strict functions on linear orders, reasoning about
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11211
(in)equalities is facilitated by theorems "strict_mono_eq",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11212
"strict_mono_less_eq" and "strict_mono_less".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11213
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11214
* Some set operations are now proper qualified constants with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11215
authentic syntax.  INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11216
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11217
    op Int ~>   Set.Int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11218
    op Un ~>    Set.Un
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11219
    INTER ~>    Set.INTER
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11220
    UNION ~>    Set.UNION
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11221
    Inter ~>    Set.Inter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11222
    Union ~>    Set.Union
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11223
    {} ~>       Set.empty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11224
    UNIV ~>     Set.UNIV
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11225
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11226
* Class complete_lattice with operations Inf, Sup, INFI, SUPR now in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11227
theory Set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11228
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11229
* Auxiliary class "itself" has disappeared -- classes without any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11230
parameter are treated as expected by the 'class' command.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11231
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11232
* Leibnitz's Series for Pi and the arcus tangens and logarithm series.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11233
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11234
* Common decision procedures (Cooper, MIR, Ferrack, Approximation,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11235
Dense_Linear_Order) are now in directory HOL/Decision_Procs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11236
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11237
* Theory src/HOL/Decision_Procs/Approximation provides the new proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11238
method "approximation".  It proves formulas on real values by using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11239
interval arithmetic.  In the formulas are also the transcendental
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11240
functions sin, cos, tan, atan, ln, exp and the constant pi are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11241
allowed. For examples see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11242
src/HOL/Descision_Procs/ex/Approximation_Ex.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11243
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11244
* Theory "Reflection" now resides in HOL/Library.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11245
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11246
* Entry point to Word library now simply named "Word".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11247
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11248
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11249
* Made source layout more coherent with logical distribution
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11250
structure:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11251
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11252
    src/HOL/Library/RType.thy ~> src/HOL/Typerep.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11253
    src/HOL/Library/Code_Message.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11254
    src/HOL/Library/GCD.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11255
    src/HOL/Library/Order_Relation.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11256
    src/HOL/Library/Parity.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11257
    src/HOL/Library/Univ_Poly.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11258
    src/HOL/Real/ContNotDenum.thy ~> src/HOL/Library/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11259
    src/HOL/Real/Lubs.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11260
    src/HOL/Real/PReal.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11261
    src/HOL/Real/Rational.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11262
    src/HOL/Real/RComplete.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11263
    src/HOL/Real/RealDef.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11264
    src/HOL/Real/RealPow.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11265
    src/HOL/Real/Real.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11266
    src/HOL/Complex/Complex_Main.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11267
    src/HOL/Complex/Complex.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11268
    src/HOL/Complex/FrechetDeriv.thy ~> src/HOL/Library/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11269
    src/HOL/Complex/Fundamental_Theorem_Algebra.thy ~> src/HOL/Library/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11270
    src/HOL/Hyperreal/Deriv.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11271
    src/HOL/Hyperreal/Fact.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11272
    src/HOL/Hyperreal/Integration.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11273
    src/HOL/Hyperreal/Lim.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11274
    src/HOL/Hyperreal/Ln.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11275
    src/HOL/Hyperreal/Log.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11276
    src/HOL/Hyperreal/MacLaurin.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11277
    src/HOL/Hyperreal/NthRoot.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11278
    src/HOL/Hyperreal/Series.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11279
    src/HOL/Hyperreal/SEQ.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11280
    src/HOL/Hyperreal/Taylor.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11281
    src/HOL/Hyperreal/Transcendental.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11282
    src/HOL/Real/Float ~> src/HOL/Library/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11283
    src/HOL/Real/HahnBanach ~> src/HOL/HahnBanach
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11284
    src/HOL/Real/RealVector.thy ~> src/HOL/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11285
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11286
    src/HOL/arith_data.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11287
    src/HOL/hologic.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11288
    src/HOL/simpdata.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11289
    src/HOL/int_arith1.ML ~> src/HOL/Tools/int_arith.ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11290
    src/HOL/int_factor_simprocs.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11291
    src/HOL/nat_simprocs.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11292
    src/HOL/Real/float_arith.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11293
    src/HOL/Real/float_syntax.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11294
    src/HOL/Real/rat_arith.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11295
    src/HOL/Real/real_arith.ML ~> src/HOL/Tools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11296
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11297
    src/HOL/Library/Array.thy ~> src/HOL/Imperative_HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11298
    src/HOL/Library/Heap_Monad.thy ~> src/HOL/Imperative_HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11299
    src/HOL/Library/Heap.thy ~> src/HOL/Imperative_HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11300
    src/HOL/Library/Imperative_HOL.thy ~> src/HOL/Imperative_HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11301
    src/HOL/Library/Ref.thy ~> src/HOL/Imperative_HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11302
    src/HOL/Library/Relational.thy ~> src/HOL/Imperative_HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11303
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11304
* If methods "eval" and "evaluation" encounter a structured proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11305
state with !!/==>, only the conclusion is evaluated to True (if
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11306
possible), avoiding strange error messages.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11308
* Method "sizechange" automates termination proofs using (a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11309
modification of) the size-change principle.  Requires SAT solver.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11310
src/HOL/ex/Termination.thy for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11311
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11312
* Simplifier: simproc for let expressions now unfolds if bound
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11313
variable occurs at most once in let expression body.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11314
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11315
* Method "arith": Linear arithmetic now ignores all inequalities when
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11316
fast_arith_neq_limit is exceeded, instead of giving up entirely.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11317
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11318
* New attribute "arith" for facts that should always be used
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11319
automatically by arithmetic. It is intended to be used locally in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11320
proofs, e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11321
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11322
  assumes [arith]: "x > 0"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11323
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11324
Global usage is discouraged because of possible performance impact.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11325
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11326
* New classes "top" and "bot" with corresponding operations "top" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11327
"bot" in theory Orderings; instantiation of class "complete_lattice"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11328
requires instantiation of classes "top" and "bot".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11329
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11330
* Changed definition lemma "less_fun_def" in order to provide an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11331
instance for preorders on functions; use lemma "less_le" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11332
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11333
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11334
* Theory Orderings: class "wellorder" moved here, with explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11335
induction rule "less_induct" as assumption.  For instantiation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11336
"wellorder" by means of predicate "wf", use rule wf_wellorderI.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11337
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11338
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11339
* Theory Orderings: added class "preorder" as superclass of "order".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11340
INCOMPATIBILITY: Instantiation proofs for order, linorder
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11341
etc. slightly changed.  Some theorems named order_class.* now named
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11342
preorder_class.*.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11343
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11344
* Theory Relation: renamed "refl" to "refl_on", "reflexive" to "refl,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11345
"diag" to "Id_on".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11346
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11347
* Theory Finite_Set: added a new fold combinator of type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11348
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11349
  ('a => 'b => 'b) => 'b => 'a set => 'b
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11350
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11351
Occasionally this is more convenient than the old fold combinator
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11352
which is now defined in terms of the new one and renamed to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11353
fold_image.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11354
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11355
* Theories Ring_and_Field and OrderedGroup: The lemmas "group_simps"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11356
and "ring_simps" have been replaced by "algebra_simps" (which can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11357
extended with further lemmas!).  At the moment both still exist but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11358
the former will disappear at some point.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11359
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11360
* Theory Power: Lemma power_Suc is now declared as a simp rule in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11361
class recpower.  Type-specific simp rules for various recpower types
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11362
have been removed.  INCOMPATIBILITY, rename old lemmas as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11363
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11364
rat_power_0    -> power_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11365
rat_power_Suc  -> power_Suc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11366
realpow_0      -> power_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11367
realpow_Suc    -> power_Suc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11368
complexpow_0   -> power_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11369
complexpow_Suc -> power_Suc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11370
power_poly_0   -> power_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11371
power_poly_Suc -> power_Suc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11372
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11373
* Theories Ring_and_Field and Divides: Definition of "op dvd" has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11374
moved to separate class dvd in Ring_and_Field; a couple of lemmas on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11375
dvd has been generalized to class comm_semiring_1.  Likewise a bunch
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11376
of lemmas from Divides has been generalized from nat to class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11377
semiring_div.  INCOMPATIBILITY.  This involves the following theorem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11378
renames resulting from duplicate elimination:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11379
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11380
    dvd_def_mod ~>          dvd_eq_mod_eq_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11381
    zero_dvd_iff ~>         dvd_0_left_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11382
    dvd_0 ~>                dvd_0_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11383
    DIVISION_BY_ZERO_DIV ~> div_by_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11384
    DIVISION_BY_ZERO_MOD ~> mod_by_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11385
    mult_div ~>             div_mult_self2_is_id
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11386
    mult_mod ~>             mod_mult_self2_is_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11387
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11388
* Theory IntDiv: removed many lemmas that are instances of class-based
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11389
generalizations (from Divides and Ring_and_Field).  INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11390
rename old lemmas as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11391
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11392
dvd_diff               -> nat_dvd_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11393
dvd_zminus_iff         -> dvd_minus_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11394
mod_add1_eq            -> mod_add_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11395
mod_mult1_eq           -> mod_mult_right_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11396
mod_mult1_eq'          -> mod_mult_left_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11397
mod_mult_distrib_mod   -> mod_mult_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11398
nat_mod_add_left_eq    -> mod_add_left_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11399
nat_mod_add_right_eq   -> mod_add_right_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11400
nat_mod_div_trivial    -> mod_div_trivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11401
nat_mod_mod_trivial    -> mod_mod_trivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11402
zdiv_zadd_self1        -> div_add_self1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11403
zdiv_zadd_self2        -> div_add_self2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11404
zdiv_zmult_self1       -> div_mult_self2_is_id
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11405
zdiv_zmult_self2       -> div_mult_self1_is_id
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11406
zdvd_triv_left         -> dvd_triv_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11407
zdvd_triv_right        -> dvd_triv_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11408
zdvd_zmult_cancel_disj -> dvd_mult_cancel_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11409
zmod_eq0_zdvd_iff      -> dvd_eq_mod_eq_0[symmetric]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11410
zmod_zadd_left_eq      -> mod_add_left_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11411
zmod_zadd_right_eq     -> mod_add_right_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11412
zmod_zadd_self1        -> mod_add_self1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11413
zmod_zadd_self2        -> mod_add_self2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11414
zmod_zadd1_eq          -> mod_add_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11415
zmod_zdiff1_eq         -> mod_diff_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11416
zmod_zdvd_zmod         -> mod_mod_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11417
zmod_zmod_cancel       -> mod_mod_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11418
zmod_zmult_self1       -> mod_mult_self2_is_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11419
zmod_zmult_self2       -> mod_mult_self1_is_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11420
zmod_1                 -> mod_by_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11421
zdiv_1                 -> div_by_1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11422
zdvd_abs1              -> abs_dvd_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11423
zdvd_abs2              -> dvd_abs_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11424
zdvd_refl              -> dvd_refl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11425
zdvd_trans             -> dvd_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11426
zdvd_zadd              -> dvd_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11427
zdvd_zdiff             -> dvd_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11428
zdvd_zminus_iff        -> dvd_minus_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11429
zdvd_zminus2_iff       -> minus_dvd_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11430
zdvd_zmultD            -> dvd_mult_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11431
zdvd_zmultD2           -> dvd_mult_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11432
zdvd_zmult_mono        -> mult_dvd_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11433
zdvd_0_right           -> dvd_0_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11434
zdvd_0_left            -> dvd_0_left_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11435
zdvd_1_left            -> one_dvd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11436
zminus_dvd_iff         -> minus_dvd_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11437
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11438
* Theory Rational: 'Fract k 0' now equals '0'.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11439
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11440
* The real numbers offer decimal input syntax: 12.34 is translated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11441
into 1234/10^2. This translation is not reversed upon output.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11442
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11443
* Theory Library/Polynomial defines an abstract type 'a poly of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11444
univariate polynomials with coefficients of type 'a.  In addition to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11445
the standard ring operations, it also supports div and mod.  Code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11446
generation is also supported, using list-style constructors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11447
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11448
* Theory Library/Inner_Product defines a class of real_inner for real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11449
inner product spaces, with an overloaded operation inner :: 'a => 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11450
=> real.  Class real_inner is a subclass of real_normed_vector from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11451
theory RealVector.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11452
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11453
* Theory Library/Product_Vector provides instances for the product
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11454
type 'a * 'b of several classes from RealVector and Inner_Product.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11455
Definitions of addition, subtraction, scalar multiplication, norms,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11456
and inner products are included.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11457
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11458
* Theory Library/Bit defines the field "bit" of integers modulo 2.  In
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11459
addition to the field operations, numerals and case syntax are also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11460
supported.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11461
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11462
* Theory Library/Diagonalize provides constructive version of Cantor's
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11463
first diagonalization argument.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11464
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11465
* Theory Library/GCD: Curried operations gcd, lcm (for nat) and zgcd,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11466
zlcm (for int); carried together from various gcd/lcm developements in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11467
the HOL Distribution.  Constants zgcd and zlcm replace former igcd and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11468
ilcm; corresponding theorems renamed accordingly.  INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11469
may recover tupled syntax as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11470
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11471
    hide (open) const gcd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11472
    abbreviation gcd where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11473
      "gcd == (%(a, b). GCD.gcd a b)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11474
    notation (output)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11475
      GCD.gcd ("gcd '(_, _')")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11476
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11477
The same works for lcm, zgcd, zlcm.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11478
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11479
* Theory Library/Nat_Infinity: added addition, numeral syntax and more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11480
instantiations for algebraic structures.  Removed some duplicate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11481
theorems.  Changes in simp rules.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11482
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11483
* ML antiquotation @{code} takes a constant as argument and generates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11484
corresponding code in background and inserts name of the corresponding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11485
resulting ML value/function/datatype constructor binding in place.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11486
All occurrences of @{code} with a single ML block are generated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11487
simultaneously.  Provides a generic and safe interface for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11488
instrumentalizing code generation.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11489
src/HOL/Decision_Procs/Ferrack.thy for a more ambitious application.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11490
In future you ought to refrain from ad-hoc compiling generated SML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11491
code on the ML toplevel.  Note that (for technical reasons) @{code}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11492
cannot refer to constants for which user-defined serializations are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11493
set.  Refer to the corresponding ML counterpart directly in that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11494
cases.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11495
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11496
* Command 'rep_datatype': instead of theorem names the command now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11497
takes a list of terms denoting the constructors of the type to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11498
represented as datatype.  The characteristic theorems have to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11499
proven.  INCOMPATIBILITY.  Also observe that the following theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11500
have disappeared in favour of existing ones:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11501
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11502
    unit_induct                 ~> unit.induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11503
    prod_induct                 ~> prod.induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11504
    sum_induct                  ~> sum.induct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11505
    Suc_Suc_eq                  ~> nat.inject
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11506
    Suc_not_Zero Zero_not_Suc   ~> nat.distinct
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11507
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11508
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11509
*** HOL-Algebra ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11510
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11511
* New locales for orders and lattices where the equivalence relation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11512
is not restricted to equality.  INCOMPATIBILITY: all order and lattice
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11513
locales use a record structure with field eq for the equivalence.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11514
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11515
* New theory of factorial domains.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11516
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11517
* Units_l_inv and Units_r_inv are now simp rules by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11518
INCOMPATIBILITY.  Simplifier proof that require deletion of l_inv
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11519
and/or r_inv will now also require deletion of these lemmas.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11520
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11521
* Renamed the following theorems, INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11522
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11523
UpperD ~> Upper_memD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11524
LowerD ~> Lower_memD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11525
least_carrier ~> least_closed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11526
greatest_carrier ~> greatest_closed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11527
greatest_Lower_above ~> greatest_Lower_below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11528
one_zero ~> carrier_one_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11529
one_not_zero ~> carrier_one_not_zero  (collision with assumption)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11531
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11532
*** HOL-Nominal ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11533
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11534
* Nominal datatypes can now contain type-variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11535
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11536
* Commands 'nominal_inductive' and 'equivariance' work with local
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11537
theory targets.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11538
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11539
* Nominal primrec can now works with local theory targets and its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11540
specification syntax now conforms to the general format as seen in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11541
'inductive' etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11542
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11543
* Method "perm_simp" honours the standard simplifier attributes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11544
(no_asm), (no_asm_use) etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11545
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11546
* The new predicate #* is defined like freshness, except that on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11547
left hand side can be a set or list of atoms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11548
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11549
* Experimental command 'nominal_inductive2' derives strong induction
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11550
principles for inductive definitions.  In contrast to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11551
'nominal_inductive', which can only deal with a fixed number of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11552
binders, it can deal with arbitrary expressions standing for sets of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11553
atoms to be avoided.  The only inductive definition we have at the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11554
moment that needs this generalisation is the typing rule for Lets in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11555
the algorithm W:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11556
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11557
 Gamma |- t1 : T1   (x,close Gamma T1)::Gamma |- t2 : T2   x#Gamma
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11558
 -----------------------------------------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11559
         Gamma |- Let x be t1 in t2 : T2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11560
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11561
In this rule one wants to avoid all the binders that are introduced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11562
"close Gamma T1".  We are looking for other examples where this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11563
feature might be useful.  Please let us know.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11564
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11565
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11566
*** HOLCF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11567
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11568
* Reimplemented the simplification procedure for proving continuity
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11569
subgoals.  The new simproc is extensible; users can declare additional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11570
continuity introduction rules with the attribute [cont2cont].
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11571
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11572
* The continuity simproc now uses a different introduction rule for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11573
solving continuity subgoals on terms with lambda abstractions.  In
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11574
some rare cases the new simproc may fail to solve subgoals that the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11575
old one could solve, and "simp add: cont2cont_LAM" may be necessary.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11576
Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11577
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11578
* Command 'fixrec': specification syntax now conforms to the general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11579
format as seen in 'inductive' etc.  See src/HOLCF/ex/Fixrec_ex.thy for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11580
examples.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11581
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11582
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11583
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11584
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11585
* Proof of Zorn's Lemma for partial orders.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11586
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11587
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11588
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11589
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11590
* Multithreading for Poly/ML 5.1/5.2 is no longer supported, only for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11591
Poly/ML 5.2.1 or later.  Important note: the TimeLimit facility
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11592
depends on multithreading, so timouts will not work before Poly/ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11593
5.2.1!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11594
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11595
* High-level support for concurrent ML programming, see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11596
src/Pure/Cuncurrent.  The data-oriented model of "future values" is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11597
particularly convenient to organize independent functional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11598
computations.  The concept of "synchronized variables" provides a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11599
higher-order interface for components with shared state, avoiding the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11600
delicate details of mutexes and condition variables.  (Requires
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11601
Poly/ML 5.2.1 or later.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11602
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11603
* ML bindings produced via Isar commands are stored within the Isar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11604
context (theory or proof).  Consequently, commands like 'use' and 'ML'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11605
become thread-safe and work with undo as expected (concerning
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11606
top-level bindings, not side-effects on global references).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11607
INCOMPATIBILITY, need to provide proper Isar context when invoking the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11608
compiler at runtime; really global bindings need to be given outside a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11609
theory.  (Requires Poly/ML 5.2 or later.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11610
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11611
* Command 'ML_prf' is analogous to 'ML' but works within a proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11612
context.  Top-level ML bindings are stored within the proof context in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11613
a purely sequential fashion, disregarding the nested proof structure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11614
ML bindings introduced by 'ML_prf' are discarded at the end of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11615
proof.  (Requires Poly/ML 5.2 or later.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11616
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11617
* Simplified ML attribute and method setup, cf. functions Attrib.setup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11618
and Method.setup, as well as Isar commands 'attribute_setup' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11619
'method_setup'.  INCOMPATIBILITY for 'method_setup', need to simplify
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11620
existing code accordingly, or use plain 'setup' together with old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11621
Method.add_method.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11622
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11623
* Simplified ML oracle interface Thm.add_oracle promotes 'a -> cterm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11624
to 'a -> thm, while results are always tagged with an authentic oracle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11625
name.  The Isar command 'oracle' is now polymorphic, no argument type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11626
is specified.  INCOMPATIBILITY, need to simplify existing oracle code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11627
accordingly.  Note that extra performance may be gained by producing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11628
the cterm carefully, avoiding slow Thm.cterm_of.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11629
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11630
* Simplified interface for defining document antiquotations via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11631
ThyOutput.antiquotation, ThyOutput.output, and optionally
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11632
ThyOutput.maybe_pretty_source.  INCOMPATIBILITY, need to simplify user
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11633
antiquotations accordingly, see src/Pure/Thy/thy_output.ML for common
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11634
examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11635
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11636
* More systematic treatment of long names, abstract name bindings, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11637
name space operations.  Basic operations on qualified names have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11638
move from structure NameSpace to Long_Name, e.g. Long_Name.base_name,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11639
Long_Name.append.  Old type bstring has been mostly replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11640
abstract type binding (see structure Binding), which supports precise
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11641
qualification by packages and local theory targets, as well as proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11642
tracking of source positions.  INCOMPATIBILITY, need to wrap old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11643
bstring values into Binding.name, or better pass through abstract
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11644
bindings everywhere.  See further src/Pure/General/long_name.ML,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11645
src/Pure/General/binding.ML and src/Pure/General/name_space.ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11646
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11647
* Result facts (from PureThy.note_thms, ProofContext.note_thms,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11648
LocalTheory.note etc.) now refer to the *full* internal name, not the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11649
bstring as before.  INCOMPATIBILITY, not detected by ML type-checking!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11650
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11651
* Disposed old type and term read functions (Sign.read_def_typ,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11652
Sign.read_typ, Sign.read_def_terms, Sign.read_term,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11653
Thm.read_def_cterms, Thm.read_cterm etc.).  INCOMPATIBILITY, should
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11654
use regular Syntax.read_typ, Syntax.read_term, Syntax.read_typ_global,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11655
Syntax.read_term_global etc.; see also OldGoals.read_term as last
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11656
resort for legacy applications.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11657
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11658
* Disposed old declarations, tactics, tactic combinators that refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11659
the simpset or claset of an implicit theory (such as Addsimps,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11660
Simp_tac, SIMPSET).  INCOMPATIBILITY, should use @{simpset} etc. in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11661
embedded ML text, or local_simpset_of with a proper context passed as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11662
explicit runtime argument.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11663
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11664
* Rules and tactics that read instantiations (read_instantiate,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11665
res_inst_tac, thin_tac, subgoal_tac etc.) now demand a proper proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11666
context, which is required for parsing and type-checking.  Moreover,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11667
the variables are specified as plain indexnames, not string encodings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11668
thereof.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11669
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11670
* Generic Toplevel.add_hook interface allows to analyze the result of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11671
transactions.  E.g. see src/Pure/ProofGeneral/proof_general_pgip.ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11672
for theorem dependency output of transactions resulting in a new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11673
theory state.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11674
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11675
* ML antiquotations: block-structured compilation context indicated by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11676
\<lbrace> ... \<rbrace>; additional antiquotation forms:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11677
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11678
  @{binding name}                         - basic name binding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11679
  @{let ?pat = term}                      - term abbreviation (HO matching)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11680
  @{note name = fact}                     - fact abbreviation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11681
  @{thm fact}                             - singleton fact (with attributes)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11682
  @{thms fact}                            - general fact (with attributes)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11683
  @{lemma prop by method}                 - singleton goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11684
  @{lemma prop by meth1 meth2}            - singleton goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11685
  @{lemma prop1 ... propN by method}      - general goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11686
  @{lemma prop1 ... propN by meth1 meth2} - general goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11687
  @{lemma (open) ...}                     - open derivation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11688
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11689
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11690
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11691
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11692
* The Isabelle "emacs" tool provides a specific interface to invoke
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11693
Proof General / Emacs, with more explicit failure if that is not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11694
installed (the old isabelle-interface script silently falls back on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11695
isabelle-process).  The PROOFGENERAL_HOME setting determines the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11696
installation location of the Proof General distribution.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11697
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11698
* Isabelle/lib/classes/Pure.jar provides basic support to integrate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11699
the Isabelle process into a JVM/Scala application.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11700
Isabelle/lib/jedit/plugin for a minimal example.  (The obsolete Java
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11701
process wrapper has been discontinued.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11702
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11703
* Added homegrown Isabelle font with unicode layout, see lib/fonts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11704
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11705
* Various status messages (with exact source position information) are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11706
emitted, if proper markup print mode is enabled.  This allows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11707
user-interface components to provide detailed feedback on internal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11708
prover operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11709
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11710
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11711
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11712
New in Isabelle2008 (June 2008)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11713
-------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11714
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11715
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11716
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11717
* The Isabelle/Isar Reference Manual (isar-ref) has been reorganized
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11718
and updated, with formally checked references as hyperlinks.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11719
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11720
* Theory loader: use_thy (and similar operations) no longer set the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11721
implicit ML context, which was occasionally hard to predict and in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11722
conflict with concurrency.  INCOMPATIBILITY, use ML within Isar which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11723
provides a proper context already.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11724
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11725
* Theory loader: old-style ML proof scripts being *attached* to a thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11726
file are no longer supported.  INCOMPATIBILITY, regular 'uses' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11727
'use' within a theory file will do the job.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11728
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11729
* Name space merge now observes canonical order, i.e. the second space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11730
is inserted into the first one, while existing entries in the first
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11731
space take precedence.  INCOMPATIBILITY in rare situations, may try to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11732
swap theory imports.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11733
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11734
* Syntax: symbol \<chi> is now considered a letter.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11735
INCOMPATIBILITY in identifier syntax etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11736
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11737
* Outer syntax: string tokens no longer admit escaped white space,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11738
which was an accidental (undocumented) feature.  INCOMPATIBILITY, use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11739
white space without escapes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11740
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11741
* Outer syntax: string tokens may contain arbitrary character codes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11742
specified via 3 decimal digits (as in SML).  E.g. "foo\095bar" for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11743
"foo_bar".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11744
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11745
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11746
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11747
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11748
* Context-dependent token translations.  Default setup reverts locally
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11749
fixed variables, and adds hilite markup for undeclared frees.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11751
* Unused theorems can be found using the new command 'unused_thms'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11752
There are three ways of invoking it:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11753
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11754
(1) unused_thms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11755
     Only finds unused theorems in the current theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11756
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11757
(2) unused_thms thy_1 ... thy_n -
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11758
     Finds unused theorems in the current theory and all of its ancestors,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11759
     excluding the theories thy_1 ... thy_n and all of their ancestors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11760
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11761
(3) unused_thms thy_1 ... thy_n - thy'_1 ... thy'_m
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11762
     Finds unused theorems in the theories thy'_1 ... thy'_m and all of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11763
     their ancestors, excluding the theories thy_1 ... thy_n and all of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11764
     their ancestors.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11765
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11766
In order to increase the readability of the list produced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11767
unused_thms, theorems that have been created by a particular instance
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11768
of a theory command such as 'inductive' or 'function' are considered
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11769
to belong to the same "group", meaning that if at least one theorem in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11770
this group is used, the other theorems in the same group are no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11771
reported as unused.  Moreover, if all theorems in the group are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11772
unused, only one theorem in the group is displayed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11773
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11774
Note that proof objects have to be switched on in order for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11775
unused_thms to work properly (i.e. !proofs must be >= 1, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11776
usually the case when using Proof General with the default settings).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11777
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11778
* Authentic naming of facts disallows ad-hoc overwriting of previous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11779
theorems within the same name space.  INCOMPATIBILITY, need to remove
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11780
duplicate fact bindings, or even accidental fact duplications.  Note
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11781
that tools may maintain dynamically scoped facts systematically, using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11782
PureThy.add_thms_dynamic.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11783
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11784
* Command 'hide' now allows to hide from "fact" name space as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11785
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11786
* Eliminated destructive theorem database, simpset, claset, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11787
clasimpset.  Potential INCOMPATIBILITY, really need to observe linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11788
update of theories within ML code.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11789
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11790
* Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11791
INCOMPATIBILITY, object-logics depending on former Pure require
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11792
additional setup PureThy.old_appl_syntax_setup; object-logics
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11793
depending on former CPure need to refer to Pure.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11794
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11795
* Commands 'use' and 'ML' are now purely functional, operating on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11796
theory/local_theory.  Removed former 'ML_setup' (on theory), use 'ML'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11797
instead.  Added 'ML_val' as mere diagnostic replacement for 'ML'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11798
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11799
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11800
* Command 'setup': discontinued implicit version with ML reference.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11801
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11802
* Instantiation target allows for simultaneous specification of class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11803
instance operations together with an instantiation proof.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11804
Type-checking phase allows to refer to class operations uniformly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11805
See src/HOL/Complex/Complex.thy for an Isar example and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11806
src/HOL/Library/Eval.thy for an ML example.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11807
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11808
* Indexing of literal facts: be more serious about including only
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11809
facts from the visible specification/proof context, but not the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11810
background context (locale etc.).  Affects `prop` notation and method
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11811
"fact".  INCOMPATIBILITY: need to name facts explicitly in rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11812
situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11813
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11814
* Method "cases", "induct", "coinduct": removed obsolete/undocumented
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11815
"(open)" option, which used to expose internal bound variables to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11816
proof text.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11817
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11818
* Isar statements: removed obsolete case "rule_context".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11819
INCOMPATIBILITY, better use explicit fixes/assumes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11820
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11821
* Locale proofs: default proof step now includes 'unfold_locales';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11822
hence 'proof' without argument may be used to unfold locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11823
predicates.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11824
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11825
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11826
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11827
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11828
* Simplified pdfsetup.sty: color/hyperref is used unconditionally for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11829
both pdf and dvi (hyperlinks usually work in xdvi as well); removed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11830
obsolete thumbpdf setup (contemporary PDF viewers do this on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11831
spot); renamed link color from "darkblue" to "linkcolor" (default
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11832
value unchanged, can be redefined via \definecolor); no longer sets
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11833
"a4paper" option (unnecessary or even intrusive).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11834
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11835
* Antiquotation @{lemma A method} proves proposition A by the given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11836
method (either a method name or a method name plus (optional) method
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11837
arguments in parentheses) and prints A just like @{prop A}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11838
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11839
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11840
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11841
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11842
* New primrec package.  Specification syntax conforms in style to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11843
definition/function/....  No separate induction rule is provided.  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11844
"primrec" command distinguishes old-style and new-style specifications
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11845
by syntax.  The former primrec package is now named OldPrimrecPackage.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11846
When adjusting theories, beware: constants stemming from new-style
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11847
primrec specifications have authentic syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11848
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11849
* Metis prover is now an order of magnitude faster, and also works
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11850
with multithreading.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11851
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11852
* Metis: the maximum number of clauses that can be produced from a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11853
theorem is now given by the attribute max_clauses.  Theorems that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11854
exceed this number are ignored, with a warning printed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11855
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11856
* Sledgehammer no longer produces structured proofs by default. To
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11857
enable, declare [[sledgehammer_full = true]].  Attributes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11858
reconstruction_modulus, reconstruction_sorts renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11859
sledgehammer_modulus, sledgehammer_sorts.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11860
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11861
* Method "induct_scheme" derives user-specified induction rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11862
from well-founded induction and completeness of patterns. This factors
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11863
out some operations that are done internally by the function package
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11864
and makes them available separately.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11865
src/HOL/ex/Induction_Scheme.thy for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11866
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11867
* More flexible generation of measure functions for termination
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11868
proofs: Measure functions can be declared by proving a rule of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11869
form "is_measure f" and giving it the [measure_function] attribute.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11870
The "is_measure" predicate is logically meaningless (always true), and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11871
just guides the heuristic.  To find suitable measure functions, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11872
termination prover sets up the goal "is_measure ?f" of the appropriate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11873
type and generates all solutions by Prolog-style backward proof using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11874
the declared rules.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11875
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11876
This setup also deals with rules like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11877
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11878
  "is_measure f ==> is_measure (list_size f)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11879
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11880
which accommodates nested datatypes that recurse through lists.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11881
Similar rules are predeclared for products and option types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11882
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11883
* Turned the type of sets "'a set" into an abbreviation for "'a => bool"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11884
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11885
  INCOMPATIBILITIES:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11886
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11887
  - Definitions of overloaded constants on sets have to be replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11888
    definitions on => and bool.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11889
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11890
  - Some definitions of overloaded operators on sets can now be proved
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11891
    using the definitions of the operators on => and bool.  Therefore,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11892
    the following theorems have been renamed:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11893
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11894
      subset_def   -> subset_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11895
      psubset_def  -> psubset_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11896
      set_diff_def -> set_diff_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11897
      Compl_def    -> Compl_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11898
      Sup_set_def  -> Sup_set_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11899
      Inf_set_def  -> Inf_set_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11900
      sup_set_def  -> sup_set_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11901
      inf_set_def  -> inf_set_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11902
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11903
  - Due to the incompleteness of the HO unification algorithm, some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11904
    rules such as subst may require manual instantiation, if some of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11905
    the unknowns in the rule is a set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11906
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11907
  - Higher order unification and forward proofs:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11908
    The proof pattern
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11909
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11910
      have "P (S::'a set)" <...>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11911
      then have "EX S. P S" ..
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11912
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11913
    no longer works (due to the incompleteness of the HO unification
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11914
    algorithm) and must be replaced by the pattern
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11915
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11916
      have "EX S. P S"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11917
      proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11918
        show "P S" <...>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11919
      qed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11920
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11921
  - Calculational reasoning with subst (or similar rules):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11922
    The proof pattern
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11924
      have "P (S::'a set)" <...>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11925
      also have "S = T" <...>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11926
      finally have "P T" .
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11927
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11928
    no longer works (for similar reasons as the previous example) and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11929
    must be replaced by something like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11930
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11931
      have "P (S::'a set)" <...>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11932
      moreover have "S = T" <...>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11933
      ultimately have "P T" by simp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11934
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11935
  - Tactics or packages written in ML code:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11936
    Code performing pattern matching on types via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11937
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11938
      Type ("set", [T]) => ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11939
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11940
    must be rewritten. Moreover, functions like strip_type or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11941
    binder_types no longer return the right value when applied to a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11942
    type of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11943
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11944
      T1 => ... => Tn => U => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11945
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11946
    rather than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11947
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11948
      T1 => ... => Tn => U set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11949
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11950
* Merged theories Wellfounded_Recursion, Accessible_Part and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11951
Wellfounded_Relations to theory Wellfounded.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11952
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11953
* Explicit class "eq" for executable equality.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11954
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11955
* Class finite no longer treats UNIV as class parameter.  Use class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11956
enum from theory Library/Enum instead to achieve a similar effect.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11957
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11958
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11959
* Theory List: rule list_induct2 now has explicitly named cases "Nil"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11960
and "Cons".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11961
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11962
* HOL (and FOL): renamed variables in rules imp_elim and swap.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11963
Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11964
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11965
* Theory Product_Type: duplicated lemmas split_Pair_apply and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11966
injective_fst_snd removed, use split_eta and prod_eqI instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11967
Renamed upd_fst to apfst and upd_snd to apsnd.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11968
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11969
* Theory Nat: removed redundant lemmas that merely duplicate lemmas of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11970
the same name in theory Orderings:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11971
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11972
  less_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11973
  less_linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11974
  le_imp_less_or_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11975
  le_less_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11976
  less_le_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11977
  less_not_sym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11978
  less_asym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11979
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11980
Renamed less_imp_le to less_imp_le_nat, and less_irrefl to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11981
less_irrefl_nat.  Potential INCOMPATIBILITY due to more general types
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11982
and different variable names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11983
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11984
* Library/Option_ord.thy: Canonical order on option type.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11985
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11986
* Library/RBT.thy: Red-black trees, an efficient implementation of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11987
finite maps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11988
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11989
* Library/Countable.thy: Type class for countable types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11990
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11991
* Theory Int: The representation of numerals has changed.  The infix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11992
operator BIT and the bit datatype with constructors B0 and B1 have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11993
disappeared.  INCOMPATIBILITY, use "Int.Bit0 x" and "Int.Bit1 y" in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11994
place of "x BIT bit.B0" and "y BIT bit.B1", respectively.  Theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11995
involving BIT, B0, or B1 have been renamed with "Bit0" or "Bit1"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11996
accordingly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11997
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11998
* Theory Nat: definition of <= and < on natural numbers no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 11999
depend on well-founded relations.  INCOMPATIBILITY.  Definitions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12000
le_def and less_def have disappeared.  Consider lemmas not_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12001
[symmetric, where ?'a = nat] and less_eq [symmetric] instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12002
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12003
* Theory Finite_Set: locales ACf, ACe, ACIf, ACIfSL and ACIfSLlin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12004
(whose purpose mainly is for various fold_set functionals) have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12005
abandoned in favor of the existing algebraic classes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12006
ab_semigroup_mult, comm_monoid_mult, ab_semigroup_idem_mult,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12007
lower_semilattice (resp. upper_semilattice) and linorder.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12008
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12009
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12010
* Theory Transitive_Closure: induct and cases rules now declare proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12011
case_names ("base" and "step").  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12012
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12013
* Theorem Inductive.lfp_ordinal_induct generalized to complete
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12014
lattices.  The form set-specific version is available as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12015
Inductive.lfp_ordinal_induct_set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12016
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12017
* Renamed theorems "power.simps" to "power_int.simps".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12018
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12019
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12020
* Class semiring_div provides basic abstract properties of semirings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12021
with division and modulo operations.  Subsumes former class dvd_mod.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12022
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12023
* Merged theories IntDef, Numeral and IntArith into unified theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12024
Int.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12025
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12026
* Theory Library/Code_Index: type "index" now represents natural
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12027
numbers rather than integers.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12028
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12029
* New class "uminus" with operation "uminus" (split of from class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12030
"minus" which now only has operation "minus", binary).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12031
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12032
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12033
* Constants "card", "internal_split", "option_map" now with authentic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12034
syntax.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12035
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12036
* Definitions subset_def, psubset_def, set_diff_def, Compl_def,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12037
le_bool_def, less_bool_def, le_fun_def, less_fun_def, inf_bool_def,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12038
sup_bool_def, Inf_bool_def, Sup_bool_def, inf_fun_def, sup_fun_def,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12039
Inf_fun_def, Sup_fun_def, inf_set_def, sup_set_def, Inf_set_def,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12040
Sup_set_def, le_def, less_def, option_map_def now with object
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12041
equality.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12042
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12043
* Records. Removed K_record, and replaced it by pure lambda term
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12044
%x. c. The simplifier setup is now more robust against eta expansion.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12045
INCOMPATIBILITY: in cases explicitly referring to K_record.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12046
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12047
* Library/Multiset: {#a, b, c#} abbreviates {#a#} + {#b#} + {#c#}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12049
* Library/ListVector: new theory of arithmetic vector operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12050
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12051
* Library/Order_Relation: new theory of various orderings as sets of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12052
pairs.  Defines preorders, partial orders, linear orders and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12053
well-orders on sets and on types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12054
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12055
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12056
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12057
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12058
* Renamed some theories to allow to loading both ZF and HOL in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12059
same session:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12060
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12061
  Datatype  -> Datatype_ZF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12062
  Inductive -> Inductive_ZF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12063
  Int       -> Int_ZF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12064
  IntDiv    -> IntDiv_ZF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12065
  Nat       -> Nat_ZF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12066
  List      -> List_ZF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12067
  Main      -> Main_ZF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12068
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12069
INCOMPATIBILITY: ZF theories that import individual theories below
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12070
Main might need to be adapted.  Regular theory Main is still
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12071
available, as trivial extension of Main_ZF.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12072
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12073
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12074
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12075
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12076
* ML within Isar: antiquotation @{const name} or @{const
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12077
name(typargs)} produces statically-checked Const term.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12078
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12079
* Functor NamedThmsFun: data is available to the user as dynamic fact
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12080
(of the same name).  Removed obsolete print command.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12081
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12082
* Removed obsolete "use_legacy_bindings" function.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12083
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12084
* The ``print mode'' is now a thread-local value derived from a global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12085
template (the former print_mode reference), thus access becomes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12086
non-critical.  The global print_mode reference is for session
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12087
management only; user-code should use print_mode_value,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12088
print_mode_active, PrintMode.setmp etc.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12089
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12090
* Functions system/system_out provide a robust way to invoke external
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12091
shell commands, with propagation of interrupts (requires Poly/ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12092
5.2.1).  Do not use OS.Process.system etc. from the basis library!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12093
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12094
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12095
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12096
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12097
* Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs ---
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12098
in accordance with Proof General 3.7, which prefers GNU emacs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12099
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12100
* isatool tty runs Isabelle process with plain tty interaction;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12101
optional line editor may be specified via ISABELLE_LINE_EDITOR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12102
setting, the default settings attempt to locate "ledit" and "rlwrap".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12103
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12104
* isatool browser now works with Cygwin as well, using general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12105
"javapath" function defined in Isabelle process environment.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12106
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12107
* YXML notation provides a simple and efficient alternative to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12108
standard XML transfer syntax.  See src/Pure/General/yxml.ML and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12109
isatool yxml as described in the Isabelle system manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12110
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12111
* JVM class isabelle.IsabelleProcess (located in Isabelle/lib/classes)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12112
provides general wrapper for managing an Isabelle process in a robust
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12113
fashion, with ``cooked'' output from stdin/stderr.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12114
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12115
* Rudimentary Isabelle plugin for jEdit (see Isabelle/lib/jedit),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12116
based on Isabelle/JVM process wrapper (see Isabelle/lib/classes).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12117
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12118
* Removed obsolete THIS_IS_ISABELLE_BUILD feature.  NB: the documented
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12119
way of changing the user's settings is via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12120
ISABELLE_HOME_USER/etc/settings, which is a fully featured bash
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12121
script.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12122
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12123
* Multithreading.max_threads := 0 refers to the number of actual CPU
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12124
cores of the underlying machine, which is a good starting point for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12125
optimal performance tuning.  The corresponding usedir option -M allows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12126
"max" as an alias for "0".  WARNING: does not work on certain versions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12127
of Mac OS (with Poly/ML 5.1).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12128
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12129
* isabelle-process: non-ML sessions are run with "nice", to reduce the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12130
adverse effect of Isabelle flooding interactive front-ends (notably
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12131
ProofGeneral / XEmacs).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12132
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12133
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12134
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12135
New in Isabelle2007 (November 2007)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12136
-----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12137
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12138
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12139
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12140
* More uniform information about legacy features, notably a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12141
warning/error of "Legacy feature: ...", depending on the state of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12142
tolerate_legacy_features flag (default true). FUTURE INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12143
legacy features will disappear eventually.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12144
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12145
* Theory syntax: the header format ``theory A = B + C:'' has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12146
discontinued in favour of ``theory A imports B C begin''.  Use isatool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12147
fixheaders to convert existing theory files.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12148
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12149
* Theory syntax: the old non-Isar theory file format has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12150
discontinued altogether.  Note that ML proof scripts may still be used
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12151
with Isar theories; migration is usually quite simple with the ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12152
function use_legacy_bindings.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12153
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12154
* Theory syntax: some popular names (e.g. 'class', 'declaration',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12155
'fun', 'help', 'if') are now keywords.  INCOMPATIBILITY, use double
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12156
quotes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12157
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12158
* Theory loader: be more serious about observing the static theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12159
header specifications (including optional directories), but not the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12160
accidental file locations of previously successful loads.  The strict
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12161
update policy of former update_thy is now already performed by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12162
use_thy, so the former has been removed; use_thys updates several
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12163
theories simultaneously, just as 'imports' within a theory header
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12164
specification, but without merging the results.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12165
INCOMPATIBILITY: may need to refine theory headers and commands
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12166
ROOT.ML which depend on load order.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12167
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12168
* Theory loader: optional support for content-based file
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12169
identification, instead of the traditional scheme of full physical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12170
path plus date stamp; configured by the ISABELLE_FILE_IDENT setting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12171
(cf. the system manual).  The new scheme allows to work with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12172
non-finished theories in persistent session images, such that source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12173
files may be moved later on without requiring reloads.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12174
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12175
* Theory loader: old-style ML proof scripts being *attached* to a thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12176
file (with the same base name as the theory) are considered a legacy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12177
feature, which will disappear eventually. Even now, the theory loader
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12178
no longer maintains dependencies on such files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12179
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12180
* Syntax: the scope for resolving ambiguities via type-inference is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12181
now limited to individual terms, instead of whole simultaneous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12182
specifications as before. This greatly reduces the complexity of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12183
syntax module and improves flexibility by separating parsing and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12184
type-checking. INCOMPATIBILITY: additional type-constraints (explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12185
'fixes' etc.) are required in rare situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12186
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12187
* Syntax: constants introduced by new-style packages ('definition',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12188
'abbreviation' etc.) are passed through the syntax module in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12189
``authentic mode''. This means that associated mixfix annotations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12190
really stick to such constants, independently of potential name space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12191
ambiguities introduced later on. INCOMPATIBILITY: constants in parse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12192
trees are represented slightly differently, may need to adapt syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12193
translations accordingly. Use CONST marker in 'translations' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12194
@{const_syntax} antiquotation in 'parse_translation' etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12195
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12196
* Legacy goal package: reduced interface to the bare minimum required
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12197
to keep existing proof scripts running.  Most other user-level
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12198
functions are now part of the OldGoals structure, which is *not* open
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12199
by default (consider isatool expandshort before open OldGoals).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12200
Removed top_sg, prin, printyp, pprint_term/typ altogether, because
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12201
these tend to cause confusion about the actual goal (!) context being
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12202
used here, which is not necessarily the same as the_context().
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12203
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12204
* Command 'find_theorems': supports "*" wild-card in "name:"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12205
criterion; "with_dups" option.  Certain ProofGeneral versions might
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12206
support a specific search form (see ProofGeneral/CHANGES).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12207
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12208
* The ``prems limit'' option (cf. ProofContext.prems_limit) is now -1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12209
by default, which means that "prems" (and also "fixed variables") are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12210
suppressed from proof state output.  Note that the ProofGeneral
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12211
settings mechanism allows to change and save options persistently, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12212
older versions of Isabelle will fail to start up if a negative prems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12213
limit is imposed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12214
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12215
* Local theory targets may be specified by non-nested blocks of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12216
``context/locale/class ... begin'' followed by ``end''.  The body may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12217
contain definitions, theorems etc., including any derived mechanism
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12218
that has been implemented on top of these primitives.  This concept
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12219
generalizes the existing ``theorem (in ...)'' towards more versatility
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12220
and scalability.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12221
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12222
* Proof General interface: proper undo of final 'end' command;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12223
discontinued Isabelle/classic mode (ML proof scripts).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12224
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12225
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12226
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12227
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12228
* Added antiquotation @{theory name} which prints the given name,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12229
after checking that it refers to a valid ancestor theory in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12230
current context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12231
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12232
* Added antiquotations @{ML_type text} and @{ML_struct text} which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12233
check the given source text as ML type/structure, printing verbatim.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12234
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12235
* Added antiquotation @{abbrev "c args"} which prints the abbreviation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12236
"c args == rhs" given in the current context.  (Any number of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12237
arguments may be given on the LHS.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12238
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12239
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12240
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12241
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12242
* The 'class' package offers a combination of axclass and locale to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12243
achieve Haskell-like type classes in Isabelle.  Definitions and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12244
theorems within a class context produce both relative results (with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12245
implicit parameters according to the locale context), and polymorphic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12246
constants with qualified polymorphism (according to the class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12247
context).  Within the body context of a 'class' target, a separate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12248
syntax layer ("user space type system") takes care of converting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12249
between global polymorphic consts and internal locale representation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12250
See src/HOL/ex/Classpackage.thy for examples (as well as main HOL).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12251
"isatool doc classes" provides a tutorial.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12252
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12253
* Generic code generator framework allows to generate executable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12254
code for ML and Haskell (including Isabelle classes).  A short usage
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12255
sketch:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12256
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12257
    internal compilation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12258
        export_code <list of constants (term syntax)> in SML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12259
    writing SML code to a file:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12260
        export_code <list of constants (term syntax)> in SML <filename>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12261
    writing OCaml code to a file:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12262
        export_code <list of constants (term syntax)> in OCaml <filename>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12263
    writing Haskell code to a bunch of files:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12264
        export_code <list of constants (term syntax)> in Haskell <filename>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12265
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12266
    evaluating closed propositions to True/False using code generation:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12267
        method ``eval''
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12268
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12269
Reasonable default setup of framework in HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12270
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12271
Theorem attributs for selecting and transforming function equations theorems:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12272
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12273
    [code fun]:        select a theorem as function equation for a specific constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12274
    [code fun del]:    deselect a theorem as function equation for a specific constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12275
    [code inline]:     select an equation theorem for unfolding (inlining) in place
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12276
    [code inline del]: deselect an equation theorem for unfolding (inlining) in place
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12277
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12278
User-defined serializations (target in {SML, OCaml, Haskell}):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12279
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12280
    code_const <and-list of constants (term syntax)>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12281
      {(target) <and-list of const target syntax>}+
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12282
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12283
    code_type <and-list of type constructors>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12284
      {(target) <and-list of type target syntax>}+
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12285
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12286
    code_instance <and-list of instances>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12287
      {(target)}+
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12288
        where instance ::= <type constructor> :: <class>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12289
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12290
    code_class <and_list of classes>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12291
      {(target) <and-list of class target syntax>}+
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12292
        where class target syntax ::= <class name> {where {<classop> == <target syntax>}+}?
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12293
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12294
code_instance and code_class only are effective to target Haskell.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12295
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12296
For example usage see src/HOL/ex/Codegenerator.thy and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12297
src/HOL/ex/Codegenerator_Pretty.thy.  A separate tutorial on code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12298
generation from Isabelle/HOL theories is available via "isatool doc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12299
codegen".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12300
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12301
* Code generator: consts in 'consts_code' Isar commands are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12302
referred to by usual term syntax (including optional type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12303
annotations).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12304
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12305
* Command 'no_translations' removes translation rules from theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12306
syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12308
* Overloaded definitions are now actually checked for acyclic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12309
dependencies.  The overloading scheme is slightly more general than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12310
that of Haskell98, although Isabelle does not demand an exact
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12311
correspondence to type class and instance declarations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12312
INCOMPATIBILITY, use ``defs (unchecked overloaded)'' to admit more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12313
exotic versions of overloading -- at the discretion of the user!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12314
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12315
Polymorphic constants are represented via type arguments, i.e. the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12316
instantiation that matches an instance against the most general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12317
declaration given in the signature.  For example, with the declaration
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12318
c :: 'a => 'a => 'a, an instance c :: nat => nat => nat is represented
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12319
as c(nat).  Overloading is essentially simultaneous structural
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12320
recursion over such type arguments.  Incomplete specification patterns
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12321
impose global constraints on all occurrences, e.g. c('a * 'a) on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12322
LHS means that more general c('a * 'b) will be disallowed on any RHS.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12323
Command 'print_theory' outputs the normalized system of recursive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12324
equations, see section "definitions".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12325
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12326
* Configuration options are maintained within the theory or proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12327
context (with name and type bool/int/string), providing a very simple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12328
interface to a poor-man's version of general context data.  Tools may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12329
declare options in ML (e.g. using Attrib.config_int) and then refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12330
these values using Config.get etc.  Users may change options via an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12331
associated attribute of the same name.  This form of context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12332
declaration works particularly well with commands 'declare' or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12333
'using', for example ``declare [[foo = 42]]''.  Thus it has become
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12334
very easy to avoid global references, which would not observe Isar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12335
toplevel undo/redo and fail to work with multithreading.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12336
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12337
Various global ML references of Pure and HOL have been turned into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12338
configuration options:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12339
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12340
  Unify.search_bound		unify_search_bound
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12341
  Unify.trace_bound		unify_trace_bound
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12342
  Unify.trace_simp		unify_trace_simp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12343
  Unify.trace_types		unify_trace_types
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12344
  Simplifier.simp_depth_limit	simp_depth_limit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12345
  Blast.depth_limit		blast_depth_limit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12346
  DatatypeProp.dtK		datatype_distinctness_limit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12347
  fast_arith_neq_limit  	fast_arith_neq_limit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12348
  fast_arith_split_limit	fast_arith_split_limit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12349
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12350
* Named collections of theorems may be easily installed as context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12351
data using the functor NamedThmsFun (see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12352
src/Pure/Tools/named_thms.ML).  The user may add or delete facts via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12353
attributes; there is also a toplevel print command.  This facility is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12354
just a common case of general context data, which is the preferred way
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12355
for anything more complex than just a list of facts in canonical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12356
order.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12357
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12358
* Isar: command 'declaration' augments a local theory by generic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12359
declaration functions written in ML.  This enables arbitrary content
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12360
being added to the context, depending on a morphism that tells the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12361
difference of the original declaration context wrt. the application
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12362
context encountered later on.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12363
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12364
* Isar: proper interfaces for simplification procedures.  Command
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12365
'simproc_setup' declares named simprocs (with match patterns, and body
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12366
text in ML).  Attribute "simproc" adds/deletes simprocs in the current
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12367
context.  ML antiquotation @{simproc name} retrieves named simprocs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12368
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12369
* Isar: an extra pair of brackets around attribute declarations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12370
abbreviates a theorem reference involving an internal dummy fact,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12371
which will be ignored later --- only the effect of the attribute on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12372
the background context will persist.  This form of in-place
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12373
declarations is particularly useful with commands like 'declare' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12374
'using', for example ``have A using [[simproc a]] by simp''.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12375
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12376
* Isar: method "assumption" (and implicit closing of subproofs) now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12377
takes simple non-atomic goal assumptions into account: after applying
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12378
an assumption as a rule the resulting subgoals are solved by atomic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12379
assumption steps.  This is particularly useful to finish 'obtain'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12380
goals, such as "!!x. (!!x. P x ==> thesis) ==> P x ==> thesis",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12381
without referring to the original premise "!!x. P x ==> thesis" in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12382
Isar proof context.  POTENTIAL INCOMPATIBILITY: method "assumption" is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12383
more permissive.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12384
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12385
* Isar: implicit use of prems from the Isar proof context is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12386
considered a legacy feature.  Common applications like ``have A .''
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12387
may be replaced by ``have A by fact'' or ``note `A`''.  In general,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12388
referencing facts explicitly here improves readability and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12389
maintainability of proof texts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12390
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12391
* Isar: improper proof element 'guess' is like 'obtain', but derives
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12392
the obtained context from the course of reasoning!  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12393
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12394
  assume "EX x y. A x & B y"   -- "any previous fact"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12395
  then guess x and y by clarify
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12396
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12397
This technique is potentially adventurous, depending on the facts and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12398
proof tools being involved here.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12399
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12400
* Isar: known facts from the proof context may be specified as literal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12401
propositions, using ASCII back-quote syntax.  This works wherever
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12402
named facts used to be allowed so far, in proof commands, proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12403
methods, attributes etc.  Literal facts are retrieved from the context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12404
according to unification of type and term parameters.  For example,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12405
provided that "A" and "A ==> B" and "!!x. P x ==> Q x" are known
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12406
theorems in the current context, then these are valid literal facts:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12407
`A` and `A ==> B` and `!!x. P x ==> Q x" as well as `P a ==> Q a` etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12408
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12409
There is also a proof method "fact" which does the same composition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12410
for explicit goal states, e.g. the following proof texts coincide with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12411
certain special cases of literal facts:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12412
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12413
  have "A" by fact                 ==  note `A`
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12414
  have "A ==> B" by fact           ==  note `A ==> B`
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12415
  have "!!x. P x ==> Q x" by fact  ==  note `!!x. P x ==> Q x`
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12416
  have "P a ==> Q a" by fact       ==  note `P a ==> Q a`
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12417
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12418
* Isar: ":" (colon) is no longer a symbolic identifier character in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12419
outer syntax.  Thus symbolic identifiers may be used without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12420
additional white space in declarations like this: ``assume *: A''.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12421
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12422
* Isar: 'print_facts' prints all local facts of the current context,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12423
both named and unnamed ones.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12424
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12425
* Isar: 'def' now admits simultaneous definitions, e.g.:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12426
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12427
  def x == "t" and y == "u"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12428
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12429
* Isar: added command 'unfolding', which is structurally similar to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12430
'using', but affects both the goal state and facts by unfolding given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12431
rewrite rules.  Thus many occurrences of the 'unfold' method or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12432
'unfolded' attribute may be replaced by first-class proof text.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12433
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12434
* Isar: methods 'unfold' / 'fold', attributes 'unfolded' / 'folded',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12435
and command 'unfolding' now all support object-level equalities
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12436
(potentially conditional).  The underlying notion of rewrite rule is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12437
analogous to the 'rule_format' attribute, but *not* that of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12438
Simplifier (which is usually more generous).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12439
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12440
* Isar: the new attribute [rotated n] (default n = 1) rotates the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12441
premises of a theorem by n. Useful in conjunction with drule.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12442
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12443
* Isar: the goal restriction operator [N] (default N = 1) evaluates a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12444
method expression within a sandbox consisting of the first N
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12445
sub-goals, which need to exist.  For example, ``simp_all [3]''
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12446
simplifies the first three sub-goals, while (rule foo, simp_all)[]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12447
simplifies all new goals that emerge from applying rule foo to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12448
originally first one.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12449
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12450
* Isar: schematic goals are no longer restricted to higher-order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12451
patterns; e.g. ``lemma "?P(?x)" by (rule TrueI)'' now works as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12452
expected.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12453
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12454
* Isar: the conclusion of a long theorem statement is now either
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12455
'shows' (a simultaneous conjunction, as before), or 'obtains'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12456
(essentially a disjunction of cases with local parameters and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12457
assumptions).  The latter allows to express general elimination rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12458
adequately; in this notation common elimination rules look like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12459
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12460
  lemma exE:    -- "EX x. P x ==> (!!x. P x ==> thesis) ==> thesis"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12461
    assumes "EX x. P x"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12462
    obtains x where "P x"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12463
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12464
  lemma conjE:  -- "A & B ==> (A ==> B ==> thesis) ==> thesis"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12465
    assumes "A & B"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12466
    obtains A and B
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12467
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12468
  lemma disjE:  -- "A | B ==> (A ==> thesis) ==> (B ==> thesis) ==> thesis"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12469
    assumes "A | B"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12470
    obtains
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12471
      A
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12472
    | B
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12473
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12474
The subsequent classical rules even refer to the formal "thesis"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12475
explicitly:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12476
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12477
  lemma classical:     -- "(~ thesis ==> thesis) ==> thesis"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12478
    obtains "~ thesis"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12479
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12480
  lemma Peirce's_Law:  -- "((thesis ==> something) ==> thesis) ==> thesis"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12481
    obtains "thesis ==> something"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12482
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12483
The actual proof of an 'obtains' statement is analogous to that of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12484
Isar proof element 'obtain', only that there may be several cases.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12485
Optional case names may be specified in parentheses; these will be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12486
available both in the present proof and as annotations in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12487
resulting rule, for later use with the 'cases' method (cf. attribute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12488
case_names).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12489
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12490
* Isar: the assumptions of a long theorem statement are available as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12491
"assms" fact in the proof context.  This is more appropriate than the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12492
(historical) "prems", which refers to all assumptions of the current
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12493
context, including those from the target locale, proof body etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12494
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12495
* Isar: 'print_statement' prints theorems from the current theory or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12496
proof context in long statement form, according to the syntax of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12497
top-level lemma.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12498
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12499
* Isar: 'obtain' takes an optional case name for the local context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12500
introduction rule (default "that").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12501
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12502
* Isar: removed obsolete 'concl is' patterns.  INCOMPATIBILITY, use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12503
explicit (is "_ ==> ?foo") in the rare cases where this still happens
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12504
to occur.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12505
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12506
* Pure: syntax "CONST name" produces a fully internalized constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12507
according to the current context.  This is particularly useful for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12508
syntax translations that should refer to internal constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12509
representations independently of name spaces.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12510
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12511
* Pure: syntax constant for foo (binder "FOO ") is called "foo_binder"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12512
instead of "FOO ". This allows multiple binder declarations to coexist
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12513
in the same context.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12514
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12515
* Isar/locales: 'notation' provides a robust interface to the 'syntax'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12516
primitive that also works in a locale context (both for constants and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12517
fixed variables). Type declaration and internal syntactic representation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12518
of given constants retrieved from the context. Likewise, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12519
'no_notation' command allows to remove given syntax annotations from the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12520
current context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12521
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12522
* Isar/locales: new derived specification elements 'axiomatization',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12523
'definition', 'abbreviation', which support type-inference, admit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12524
object-level specifications (equality, equivalence).  See also the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12525
isar-ref manual.  Examples:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12526
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12527
  axiomatization
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12528
    eq  (infix "===" 50) where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12529
    eq_refl: "x === x" and eq_subst: "x === y ==> P x ==> P y"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12530
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12531
  definition "f x y = x + y + 1"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12532
  definition g where "g x = f x x"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12533
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12534
  abbreviation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12535
    neq  (infix "=!=" 50) where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12536
    "x =!= y == ~ (x === y)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12537
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12538
These specifications may be also used in a locale context.  Then the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12539
constants being introduced depend on certain fixed parameters, and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12540
constant name is qualified by the locale base name.  An internal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12541
abbreviation takes care for convenient input and output, making the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12542
parameters implicit and using the original short name.  See also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12543
src/HOL/ex/Abstract_NAT.thy for an example of deriving polymorphic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12544
entities from a monomorphic theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12545
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12546
Presently, abbreviations are only available 'in' a target locale, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12547
not inherited by general import expressions.  Also note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12548
'abbreviation' may be used as a type-safe replacement for 'syntax' +
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12549
'translations' in common applications.  The "no_abbrevs" print mode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12550
prevents folding of abbreviations in term output.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12551
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12552
Concrete syntax is attached to specified constants in internal form,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12553
independently of name spaces.  The parse tree representation is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12554
slightly different -- use 'notation' instead of raw 'syntax', and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12555
'translations' with explicit "CONST" markup to accommodate this.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12556
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12557
* Pure/Isar: unified syntax for new-style specification mechanisms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12558
(e.g.  'definition', 'abbreviation', or 'inductive' in HOL) admits
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12559
full type inference and dummy patterns ("_").  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12560
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12561
  definition "K x _ = x"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12562
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12563
  inductive conj for A B
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12564
  where "A ==> B ==> conj A B"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12565
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12566
* Pure: command 'print_abbrevs' prints all constant abbreviations of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12567
the current context.  Print mode "no_abbrevs" prevents inversion of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12568
abbreviations on output.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12569
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12570
* Isar/locales: improved parameter handling: use of locales "var" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12571
"struct" no longer necessary; - parameter renamings are no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12572
required to be injective.  For example, this allows to define
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12573
endomorphisms as locale endom = homom mult mult h.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12574
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12575
* Isar/locales: changed the way locales with predicates are defined.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12576
Instead of accumulating the specification, the imported expression is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12577
now an interpretation.  INCOMPATIBILITY: different normal form of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12578
locale expressions.  In particular, in interpretations of locales with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12579
predicates, goals repesenting already interpreted fragments are not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12580
removed automatically.  Use methods `intro_locales' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12581
`unfold_locales'; see below.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12582
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12583
* Isar/locales: new methods `intro_locales' and `unfold_locales'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12584
provide backward reasoning on locales predicates.  The methods are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12585
aware of interpretations and discharge corresponding goals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12586
`intro_locales' is less aggressive then `unfold_locales' and does not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12587
unfold predicates to assumptions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12588
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12589
* Isar/locales: the order in which locale fragments are accumulated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12590
has changed.  This enables to override declarations from fragments due
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12591
to interpretations -- for example, unwanted simp rules.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12592
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12593
* Isar/locales: interpretation in theories and proof contexts has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12594
extended.  One may now specify (and prove) equations, which are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12595
unfolded in interpreted theorems.  This is useful for replacing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12596
defined concepts (constants depending on locale parameters) by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12597
concepts already existing in the target context.  Example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12598
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12599
  interpretation partial_order ["op <= :: [int, int] => bool"]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12600
    where "partial_order.less (op <=) (x::int) y = (x < y)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12601
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12602
Typically, the constant `partial_order.less' is created by a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12603
definition specification element in the context of locale
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12604
partial_order.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12605
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12606
* Method "induct": improved internal context management to support
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12607
local fixes and defines on-the-fly. Thus explicit meta-level
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12608
connectives !!  and ==> are rarely required anymore in inductive goals
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12609
(using object-logic connectives for this purpose has been long
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12610
obsolete anyway). Common proof patterns are explained in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12611
src/HOL/Induct/Common_Patterns.thy, see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12612
src/HOL/Isar_examples/Puzzle.thy and src/HOL/Lambda for realistic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12613
examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12614
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12615
* Method "induct": improved handling of simultaneous goals. Instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12616
introducing object-level conjunction, the statement is now split into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12617
several conclusions, while the corresponding symbolic cases are nested
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12618
accordingly. INCOMPATIBILITY, proofs need to be structured explicitly,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12619
see src/HOL/Induct/Common_Patterns.thy, for example.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12620
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12621
* Method "induct": mutual induction rules are now specified as a list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12622
of rule sharing the same induction cases. HOL packages usually provide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12623
foo_bar.inducts for mutually defined items foo and bar (e.g. inductive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12624
predicates/sets or datatypes). INCOMPATIBILITY, users need to specify
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12625
mutual induction rules differently, i.e. like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12626
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12627
  (induct rule: foo_bar.inducts)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12628
  (induct set: foo bar)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12629
  (induct pred: foo bar)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12630
  (induct type: foo bar)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12631
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12632
The ML function ProjectRule.projections turns old-style rules into the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12633
new format.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12634
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12635
* Method "coinduct": dual of induction, see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12636
src/HOL/Library/Coinductive_List.thy for various examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12637
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12638
* Method "cases", "induct", "coinduct": the ``(open)'' option is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12639
considered a legacy feature.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12640
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12641
* Attribute "symmetric" produces result with standardized schematic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12642
variables (index 0).  Potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12643
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12644
* Simplifier: by default the simplifier trace only shows top level
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12645
rewrites now. That is, trace_simp_depth_limit is set to 1 by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12646
default. Thus there is less danger of being flooded by the trace. The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12647
trace indicates where parts have been suppressed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12648
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12649
* Provers/classical: removed obsolete classical version of elim_format
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12650
attribute; classical elim/dest rules are now treated uniformly when
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12651
manipulating the claset.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12652
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12653
* Provers/classical: stricter checks to ensure that supplied intro,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12654
dest and elim rules are well-formed; dest and elim rules must have at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12655
least one premise.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12656
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12657
* Provers/classical: attributes dest/elim/intro take an optional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12658
weight argument for the rule (just as the Pure versions).  Weights are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12659
ignored by automated tools, but determine the search order of single
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12660
rule steps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12661
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12662
* Syntax: input syntax now supports dummy variable binding "%_. b",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12663
where the body does not mention the bound variable.  Note that dummy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12664
patterns implicitly depend on their context of bounds, which makes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12665
"{_. _}" match any set comprehension as expected.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12666
INCOMPATIBILITY -- parse translations need to cope with syntactic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12667
constant "_idtdummy" in the binding position.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12668
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12669
* Syntax: removed obsolete syntactic constant "_K" and its associated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12670
parse translation.  INCOMPATIBILITY -- use dummy abstraction instead,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12671
for example "A -> B" => "Pi A (%_. B)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12672
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12673
* Pure: 'class_deps' command visualizes the subclass relation, using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12674
the graph browser tool.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12675
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12676
* Pure: 'print_theory' now suppresses certain internal declarations by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12677
default; use '!' option for full details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12678
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12679
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12680
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12681
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12682
* Method "metis" proves goals by applying the Metis general-purpose
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12683
resolution prover (see also http://gilith.com/software/metis/).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12684
Examples are in the directory MetisExamples.  WARNING: the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12685
Isabelle/HOL-Metis integration does not yet work properly with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12686
multi-threading.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12687
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12688
* Command 'sledgehammer' invokes external automatic theorem provers as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12689
background processes.  It generates calls to the "metis" method if
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12690
successful. These can be pasted into the proof.  Users do not have to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12691
wait for the automatic provers to return.  WARNING: does not really
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12692
work with multi-threading.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12693
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12694
* New "auto_quickcheck" feature tests outermost goal statements for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12695
potential counter-examples.  Controlled by ML references
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12696
auto_quickcheck (default true) and auto_quickcheck_time_limit (default
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12697
5000 milliseconds).  Fails silently if statements is outside of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12698
executable fragment, or any other codgenerator problem occurs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12699
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12700
* New constant "undefined" with axiom "undefined x = undefined".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12701
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12702
* Added class "HOL.eq", allowing for code generation with polymorphic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12703
equality.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12704
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12705
* Some renaming of class constants due to canonical name prefixing in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12706
the new 'class' package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12707
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12708
    HOL.abs ~> HOL.abs_class.abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12709
    HOL.divide ~> HOL.divide_class.divide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12710
    0 ~> HOL.zero_class.zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12711
    1 ~> HOL.one_class.one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12712
    op + ~> HOL.plus_class.plus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12713
    op - ~> HOL.minus_class.minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12714
    uminus ~> HOL.minus_class.uminus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12715
    op * ~> HOL.times_class.times
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12716
    op < ~> HOL.ord_class.less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12717
    op <= > HOL.ord_class.less_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12718
    Nat.power ~> Power.power_class.power
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12719
    Nat.size ~> Nat.size_class.size
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12720
    Numeral.number_of ~> Numeral.number_class.number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12721
    FixedPoint.Inf ~> Lattices.complete_lattice_class.Inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12722
    FixedPoint.Sup ~> Lattices.complete_lattice_class.Sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12723
    Orderings.min ~> Orderings.ord_class.min
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12724
    Orderings.max ~> Orderings.ord_class.max
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12725
    Divides.op div ~> Divides.div_class.div
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12726
    Divides.op mod ~> Divides.div_class.mod
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12727
    Divides.op dvd ~> Divides.div_class.dvd
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12728
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12729
INCOMPATIBILITY.  Adaptions may be required in the following cases:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12730
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12731
a) User-defined constants using any of the names "plus", "minus",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12732
"times", "less" or "less_eq". The standard syntax translations for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12733
"+", "-" and "*" may go wrong.  INCOMPATIBILITY: use more specific
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12734
names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12735
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12736
b) Variables named "plus", "minus", "times", "less", "less_eq"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12737
INCOMPATIBILITY: use more specific names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12738
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12739
c) Permutative equations (e.g. "a + b = b + a")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12740
Since the change of names also changes the order of terms, permutative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12741
rewrite rules may get applied in a different order. Experience shows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12742
that this is rarely the case (only two adaptions in the whole Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12743
distribution).  INCOMPATIBILITY: rewrite proofs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12744
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12745
d) ML code directly refering to constant names
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12746
This in general only affects hand-written proof tactics, simprocs and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12747
so on.  INCOMPATIBILITY: grep your sourcecode and replace names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12748
Consider using @{const_name} antiquotation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12749
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12750
* New class "default" with associated constant "default".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12751
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12752
* Function "sgn" is now overloaded and available on int, real, complex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12753
(and other numeric types), using class "sgn".  Two possible defs of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12754
sgn are given as equational assumptions in the classes sgn_if and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12755
sgn_div_norm; ordered_idom now also inherits from sgn_if.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12756
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12757
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12758
* Locale "partial_order" now unified with class "order" (cf. theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12759
Orderings), added parameter "less".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12760
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12761
* Renamings in classes "order" and "linorder": facts "refl", "trans" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12762
"cases" to "order_refl", "order_trans" and "linorder_cases", to avoid
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12763
clashes with HOL "refl" and "trans".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12764
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12765
* Classes "order" and "linorder": potential INCOMPATIBILITY due to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12766
changed order of proof goals in instance proofs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12767
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12768
* The transitivity reasoner for partial and linear orders is set up
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12769
for classes "order" and "linorder".  Instances of the reasoner are available
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12770
in all contexts importing or interpreting the corresponding locales.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12771
Method "order" invokes the reasoner separately; the reasoner
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12772
is also integrated with the Simplifier as a solver.  Diagnostic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12773
command 'print_orders' shows the available instances of the reasoner
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12774
in the current context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12775
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12776
* Localized monotonicity predicate in theory "Orderings"; integrated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12777
lemmas max_of_mono and min_of_mono with this predicate.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12778
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12779
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12780
* Formulation of theorem "dense" changed slightly due to integration
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12781
with new class dense_linear_order.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12782
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12783
* Uniform lattice theory development in HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12784
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12785
    constants "meet" and "join" now named "inf" and "sup"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12786
    constant "Meet" now named "Inf"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12787
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12788
    classes "meet_semilorder" and "join_semilorder" now named
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12789
      "lower_semilattice" and "upper_semilattice"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12790
    class "lorder" now named "lattice"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12791
    class "comp_lat" now named "complete_lattice"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12792
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12793
    Instantiation of lattice classes allows explicit definitions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12794
    for "inf" and "sup" operations (or "Inf" and "Sup" for complete lattices).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12795
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12796
  INCOMPATIBILITY.  Theorem renames:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12797
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12798
    meet_left_le            ~> inf_le1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12799
    meet_right_le           ~> inf_le2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12800
    join_left_le            ~> sup_ge1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12801
    join_right_le           ~> sup_ge2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12802
    meet_join_le            ~> inf_sup_ord
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12803
    le_meetI                ~> le_infI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12804
    join_leI                ~> le_supI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12805
    le_meet                 ~> le_inf_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12806
    le_join                 ~> ge_sup_conv
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12807
    meet_idempotent         ~> inf_idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12808
    join_idempotent         ~> sup_idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12809
    meet_comm               ~> inf_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12810
    join_comm               ~> sup_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12811
    meet_leI1               ~> le_infI1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12812
    meet_leI2               ~> le_infI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12813
    le_joinI1               ~> le_supI1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12814
    le_joinI2               ~> le_supI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12815
    meet_assoc              ~> inf_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12816
    join_assoc              ~> sup_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12817
    meet_left_comm          ~> inf_left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12818
    meet_left_idempotent    ~> inf_left_idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12819
    join_left_comm          ~> sup_left_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12820
    join_left_idempotent    ~> sup_left_idem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12821
    meet_aci                ~> inf_aci
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12822
    join_aci                ~> sup_aci
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12823
    le_def_meet             ~> le_iff_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12824
    le_def_join             ~> le_iff_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12825
    join_absorp2            ~> sup_absorb2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12826
    join_absorp1            ~> sup_absorb1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12827
    meet_absorp1            ~> inf_absorb1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12828
    meet_absorp2            ~> inf_absorb2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12829
    meet_join_absorp        ~> inf_sup_absorb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12830
    join_meet_absorp        ~> sup_inf_absorb
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12831
    distrib_join_le         ~> distrib_sup_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12832
    distrib_meet_le         ~> distrib_inf_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12833
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12834
    add_meet_distrib_left   ~> add_inf_distrib_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12835
    add_join_distrib_left   ~> add_sup_distrib_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12836
    is_join_neg_meet        ~> is_join_neg_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12837
    is_meet_neg_join        ~> is_meet_neg_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12838
    add_meet_distrib_right  ~> add_inf_distrib_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12839
    add_join_distrib_right  ~> add_sup_distrib_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12840
    add_meet_join_distribs  ~> add_sup_inf_distribs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12841
    join_eq_neg_meet        ~> sup_eq_neg_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12842
    meet_eq_neg_join        ~> inf_eq_neg_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12843
    add_eq_meet_join        ~> add_eq_inf_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12844
    meet_0_imp_0            ~> inf_0_imp_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12845
    join_0_imp_0            ~> sup_0_imp_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12846
    meet_0_eq_0             ~> inf_0_eq_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12847
    join_0_eq_0             ~> sup_0_eq_0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12848
    neg_meet_eq_join        ~> neg_inf_eq_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12849
    neg_join_eq_meet        ~> neg_sup_eq_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12850
    join_eq_if              ~> sup_eq_if
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12851
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12852
    mono_meet               ~> mono_inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12853
    mono_join               ~> mono_sup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12854
    meet_bool_eq            ~> inf_bool_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12855
    join_bool_eq            ~> sup_bool_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12856
    meet_fun_eq             ~> inf_fun_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12857
    join_fun_eq             ~> sup_fun_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12858
    meet_set_eq             ~> inf_set_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12859
    join_set_eq             ~> sup_set_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12860
    meet1_iff               ~> inf1_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12861
    meet2_iff               ~> inf2_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12862
    meet1I                  ~> inf1I
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12863
    meet2I                  ~> inf2I
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12864
    meet1D1                 ~> inf1D1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12865
    meet2D1                 ~> inf2D1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12866
    meet1D2                 ~> inf1D2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12867
    meet2D2                 ~> inf2D2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12868
    meet1E                  ~> inf1E
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12869
    meet2E                  ~> inf2E
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12870
    join1_iff               ~> sup1_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12871
    join2_iff               ~> sup2_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12872
    join1I1                 ~> sup1I1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12873
    join2I1                 ~> sup2I1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12874
    join1I1                 ~> sup1I1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12875
    join2I2                 ~> sup1I2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12876
    join1CI                 ~> sup1CI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12877
    join2CI                 ~> sup2CI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12878
    join1E                  ~> sup1E
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12879
    join2E                  ~> sup2E
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12880
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12881
    is_meet_Meet            ~> is_meet_Inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12882
    Meet_bool_def           ~> Inf_bool_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12883
    Meet_fun_def            ~> Inf_fun_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12884
    Meet_greatest           ~> Inf_greatest
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12885
    Meet_lower              ~> Inf_lower
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12886
    Meet_set_def            ~> Inf_set_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12887
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12888
    Sup_def                 ~> Sup_Inf
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12889
    Sup_bool_eq             ~> Sup_bool_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12890
    Sup_fun_eq              ~> Sup_fun_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12891
    Sup_set_eq              ~> Sup_set_def
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12892
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12893
    listsp_meetI            ~> listsp_infI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12894
    listsp_meet_eq          ~> listsp_inf_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12895
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12896
    meet_min                ~> inf_min
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12897
    join_max                ~> sup_max
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12899
* Added syntactic class "size"; overloaded constant "size" now has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12900
type "'a::size ==> bool"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12901
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12902
* Internal reorganisation of `size' of datatypes: size theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12903
"foo.size" are no longer subsumed by "foo.simps" (but are still
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12904
simplification rules by default!); theorems "prod.size" now named
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12905
"*.size".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12906
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12907
* Class "div" now inherits from class "times" rather than "type".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12908
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12909
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12910
* HOL/Finite_Set: "name-space" locales Lattice, Distrib_lattice,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12911
Linorder etc.  have disappeared; operations defined in terms of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12912
fold_set now are named Inf_fin, Sup_fin.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12913
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12914
* HOL/Nat: neq0_conv no longer declared as iff.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12915
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12916
* HOL-Word: New extensive library and type for generic, fixed size
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12917
machine words, with arithmetic, bit-wise, shifting and rotating
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12918
operations, reflection into int, nat, and bool lists, automation for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12919
linear arithmetic (by automatic reflection into nat or int), including
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12920
lemmas on overflow and monotonicity.  Instantiated to all appropriate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12921
arithmetic type classes, supporting automatic simplification of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12922
numerals on all operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12924
* Library/Boolean_Algebra: locales for abstract boolean algebras.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12925
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12926
* Library/Numeral_Type: numbers as types, e.g. TYPE(32).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12927
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12928
* Code generator library theories:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12929
  - Code_Integer represents HOL integers by big integer literals in target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12930
    languages.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12931
  - Code_Char represents HOL characters by character literals in target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12932
    languages.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12933
  - Code_Char_chr like Code_Char, but also offers treatment of character
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12934
    codes; includes Code_Integer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12935
  - Executable_Set allows to generate code for finite sets using lists.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12936
  - Executable_Rat implements rational numbers as triples (sign, enumerator,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12937
    denominator).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12938
  - Executable_Real implements a subset of real numbers, namly those
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12939
    representable by rational numbers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12940
  - Efficient_Nat implements natural numbers by integers, which in general will
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12941
    result in higher efficency; pattern matching with 0/Suc is eliminated;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12942
    includes Code_Integer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12943
  - Code_Index provides an additional datatype index which is mapped to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12944
    target-language built-in integers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12945
  - Code_Message provides an additional datatype message_string which is isomorphic to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12946
    strings; messages are mapped to target-language strings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12947
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12948
* New package for inductive predicates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12949
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12950
  An n-ary predicate p with m parameters z_1, ..., z_m can now be defined via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12951
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12952
    inductive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12953
      p :: "U_1 => ... => U_m => T_1 => ... => T_n => bool"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12954
      for z_1 :: U_1 and ... and z_n :: U_m
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12955
    where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12956
      rule_1: "... ==> p z_1 ... z_m t_1_1 ... t_1_n"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12957
    | ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12958
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12959
  with full support for type-inference, rather than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12960
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12961
    consts s :: "U_1 => ... => U_m => (T_1 * ... * T_n) set"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12962
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12963
    abbreviation p :: "U_1 => ... => U_m => T_1 => ... => T_n => bool"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12964
    where "p z_1 ... z_m x_1 ... x_n == (x_1, ..., x_n) : s z_1 ... z_m"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12965
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12966
    inductive "s z_1 ... z_m"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12967
    intros
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12968
      rule_1: "... ==> (t_1_1, ..., t_1_n) : s z_1 ... z_m"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12969
      ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12970
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12971
  For backward compatibility, there is a wrapper allowing inductive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12972
  sets to be defined with the new package via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12973
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12974
    inductive_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12975
      s :: "U_1 => ... => U_m => (T_1 * ... * T_n) set"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12976
      for z_1 :: U_1 and ... and z_n :: U_m
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12977
    where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12978
      rule_1: "... ==> (t_1_1, ..., t_1_n) : s z_1 ... z_m"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12979
    | ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12980
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12981
  or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12982
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12983
    inductive_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12984
      s :: "U_1 => ... => U_m => (T_1 * ... * T_n) set"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12985
      and p :: "U_1 => ... => U_m => T_1 => ... => T_n => bool"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12986
      for z_1 :: U_1 and ... and z_n :: U_m
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12987
    where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12988
      "p z_1 ... z_m x_1 ... x_n == (x_1, ..., x_n) : s z_1 ... z_m"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12989
    | rule_1: "... ==> p z_1 ... z_m t_1_1 ... t_1_n"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12990
    | ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12991
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12992
  if the additional syntax "p ..." is required.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12993
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12994
  Numerous examples can be found in the subdirectories src/HOL/Auth,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12995
  src/HOL/Bali, src/HOL/Induct, and src/HOL/MicroJava.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12996
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12997
  INCOMPATIBILITIES:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12998
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 12999
  - Since declaration and definition of inductive sets or predicates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13000
    is no longer separated, abbreviations involving the newly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13001
    introduced sets or predicates must be specified together with the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13002
    introduction rules after the 'where' keyword (see above), rather
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13003
    than before the actual inductive definition.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13004
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13005
  - The variables in induction and elimination rules are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13006
    quantified in the order of their occurrence in the introduction
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13007
    rules, rather than in alphabetical order. Since this may break
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13008
    some proofs, these proofs either have to be repaired, e.g. by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13009
    reordering the variables a_i_1 ... a_i_{k_i} in Isar 'case'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13010
    statements of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13011
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13012
      case (rule_i a_i_1 ... a_i_{k_i})
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13013
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13014
    or the old order of quantification has to be restored by explicitly adding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13015
    meta-level quantifiers in the introduction rules, i.e.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13016
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13017
      | rule_i: "!!a_i_1 ... a_i_{k_i}. ... ==> p z_1 ... z_m t_i_1 ... t_i_n"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13018
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13019
  - The format of the elimination rules is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13020
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13021
      p z_1 ... z_m x_1 ... x_n ==>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13022
        (!!a_1_1 ... a_1_{k_1}. x_1 = t_1_1 ==> ... ==> x_n = t_1_n ==> ... ==> P)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13023
        ==> ... ==> P
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13024
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13025
    for predicates and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13026
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13027
      (x_1, ..., x_n) : s z_1 ... z_m ==>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13028
        (!!a_1_1 ... a_1_{k_1}. x_1 = t_1_1 ==> ... ==> x_n = t_1_n ==> ... ==> P)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13029
        ==> ... ==> P
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13030
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13031
    for sets rather than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13032
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13033
      x : s z_1 ... z_m ==>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13034
        (!!a_1_1 ... a_1_{k_1}. x = (t_1_1, ..., t_1_n) ==> ... ==> P)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13035
        ==> ... ==> P
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13036
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13037
    This may require terms in goals to be expanded to n-tuples
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13038
    (e.g. using case_tac or simplification with the split_paired_all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13039
    rule) before the above elimination rule is applicable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13040
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13041
  - The elimination or case analysis rules for (mutually) inductive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13042
    sets or predicates are now called "p_1.cases" ... "p_k.cases". The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13043
    list of rules "p_1_..._p_k.elims" is no longer available.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13044
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13045
* New package "function"/"fun" for general recursive functions,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13046
supporting mutual and nested recursion, definitions in local contexts,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13047
more general pattern matching and partiality. See HOL/ex/Fundefs.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13048
for small examples, and the separate tutorial on the function
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13049
package. The old recdef "package" is still available as before, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13050
users are encouraged to use the new package.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13051
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13052
* Method "lexicographic_order" automatically synthesizes termination
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13053
relations as lexicographic combinations of size measures.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13054
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13055
* Case-expressions allow arbitrary constructor-patterns (including
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13056
"_") and take their order into account, like in functional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13057
programming.  Internally, this is translated into nested
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13058
case-expressions; missing cases are added and mapped to the predefined
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13059
constant "undefined". In complicated cases printing may no longer show
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13060
the original input but the internal form. Lambda-abstractions allow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13061
the same form of pattern matching: "% pat1 => e1 | ..." is an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13062
abbreviation for "%x. case x of pat1 => e1 | ..." where x is a new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13063
variable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13064
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13065
* IntDef: The constant "int :: nat => int" has been removed; now "int"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13066
is an abbreviation for "of_nat :: nat => int". The simplification
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13067
rules for "of_nat" have been changed to work like "int" did
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13068
previously.  Potential INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13069
  - "of_nat (Suc m)" simplifies to "1 + of_nat m" instead of "of_nat m + 1"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13070
  - of_nat_diff and of_nat_mult are no longer default simp rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13071
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13072
* Method "algebra" solves polynomial equations over (semi)rings using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13073
Groebner bases. The (semi)ring structure is defined by locales and the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13074
tool setup depends on that generic context. Installing the method for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13075
a specific type involves instantiating the locale and possibly adding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13076
declarations for computation on the coefficients.  The method is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13077
already instantiated for natural numbers and for the axiomatic class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13078
of idoms with numerals.  See also the paper by Chaieb and Wenzel at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13079
CALCULEMUS 2007 for the general principles underlying this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13080
architecture of context-aware proof-tools.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13081
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13082
* Method "ferrack" implements quantifier elimination over
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13083
special-purpose dense linear orders using locales (analogous to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13084
"algebra"). The method is already installed for class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13085
{ordered_field,recpower,number_ring} which subsumes real, hyperreal,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13086
rat, etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13088
* Former constant "List.op @" now named "List.append".  Use ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13089
antiquotations @{const_name List.append} or @{term " ... @ ... "} to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13090
circumvent possible incompatibilities when working on ML level.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13091
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13092
* primrec: missing cases mapped to "undefined" instead of "arbitrary".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13093
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13094
* New function listsum :: 'a list => 'a for arbitrary monoids.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13095
Special syntax: "SUM x <- xs. f x" (and latex variants)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13096
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13097
* New syntax for Haskell-like list comprehension (input only), eg.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13098
[(x,y). x <- xs, y <- ys, x ~= y], see also src/HOL/List.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13099
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13100
* The special syntax for function "filter" has changed from [x :
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13101
xs. P] to [x <- xs. P] to avoid an ambiguity caused by list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13102
comprehension syntax, and for uniformity.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13103
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13104
* [a..b] is now defined for arbitrary linear orders.  It used to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13105
defined on nat only, as an abbreviation for [a..<Suc b]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13106
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13107
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13108
* Renamed lemma "set_take_whileD"  to "set_takeWhileD".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13109
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13110
* New functions "sorted" and "sort" in src/HOL/List.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13111
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13112
* New lemma collection field_simps (an extension of ring_simps) for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13113
manipulating (in)equations involving division. Multiplies with all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13114
denominators that can be proved to be non-zero (in equations) or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13115
positive/negative (in inequations).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13116
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13117
* Lemma collections ring_eq_simps, group_eq_simps and ring_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13118
have been improved and renamed to ring_simps, group_simps and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13119
ring_distribs.  Removed lemmas field_xyz in theory Ring_and_Field
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13120
because they were subsumed by lemmas xyz.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13121
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13122
* Theory Library/Commutative_Ring: switched from recdef to function
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13123
package; constants add, mul, pow now curried.  Infix syntax for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13124
algebraic operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13125
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13126
* Dropped redundant lemma def_imp_eq in favor of meta_eq_to_obj_eq.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13127
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13128
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13129
* Dropped redundant lemma if_def2 in favor of if_bool_eq_conj.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13130
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13131
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13132
* HOL/records: generalised field-update to take a function on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13133
field rather than the new value: r(|A := x|) is translated to A_update
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13134
(K x) r The K-combinator that is internally used is called K_record.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13135
INCOMPATIBILITY: Usage of the plain update functions has to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13136
adapted.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13137
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13138
* Class "semiring_0" now contains annihilation axioms x * 0 = 0 and 0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13139
* x = 0, which are required for a semiring.  Richer structures do not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13140
inherit from semiring_0 anymore, because this property is a theorem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13141
there, not an axiom.  INCOMPATIBILITY: In instances of semiring_0,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13142
there is more to prove, but this is mostly trivial.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13143
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13144
* Class "recpower" is generalized to arbitrary monoids, not just
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13145
commutative semirings.  INCOMPATIBILITY: may need to incorporate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13146
commutativity or semiring properties additionally.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13147
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13148
* Constant "List.list_all2" in List.thy now uses authentic syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13149
INCOMPATIBILITY: translations containing list_all2 may go wrong,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13150
better use 'abbreviation'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13151
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13152
* Renamed constant "List.op mem" to "List.member".  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13153
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13154
* Numeral syntax: type 'bin' which was a mere type copy of 'int' has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13155
been abandoned in favour of plain 'int'.  INCOMPATIBILITY --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13156
significant changes for setting up numeral syntax for types:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13157
  - New constants Numeral.pred and Numeral.succ instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13158
      of former Numeral.bin_pred and Numeral.bin_succ.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13159
  - Use integer operations instead of bin_add, bin_mult and so on.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13160
  - Numeral simplification theorems named Numeral.numeral_simps instead of Bin_simps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13161
  - ML structure Bin_Simprocs now named Int_Numeral_Base_Simprocs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13162
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13163
See src/HOL/Integ/IntArith.thy for an example setup.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13164
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13165
* Command 'normal_form' computes the normal form of a term that may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13166
contain free variables.  For example ``normal_form "rev [a, b, c]"''
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13167
produces ``[b, c, a]'' (without proof).  This command is suitable for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13168
heavy-duty computations because the functions are compiled to ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13169
first.  Correspondingly, a method "normalization" is provided.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13170
further src/HOL/ex/NormalForm.thy and src/Tools/nbe.ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13171
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13172
* Alternative iff syntax "A <-> B" for equality on bool (with priority
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13173
25 like -->); output depends on the "iff" print_mode, the default is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13174
"A = B" (with priority 50).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13175
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13176
* Relations less (<) and less_eq (<=) are also available on type bool.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13177
Modified syntax to disallow nesting without explicit parentheses,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13178
e.g. "(x < y) < z" or "x < (y < z)", but NOT "x < y < z".  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13179
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13180
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13181
* "LEAST x:A. P" expands to "LEAST x. x:A & P" (input only).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13182
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13183
* Relation composition operator "op O" now has precedence 75 and binds
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13184
stronger than union and intersection. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13185
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13186
* The old set interval syntax "{m..n(}" (and relatives) has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13187
removed.  Use "{m..<n}" (and relatives) instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13188
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13189
* In the context of the assumption "~(s = t)" the Simplifier rewrites
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13190
"t = s" to False (by simproc "neq").  INCOMPATIBILITY, consider using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13191
``declare [[simproc del: neq]]''.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13192
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13193
* Simplifier: "m dvd n" where m and n are numbers is evaluated to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13194
True/False.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13195
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13196
* Theorem Cons_eq_map_conv no longer declared as "simp".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13197
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13198
* Theorem setsum_mult renamed to setsum_right_distrib.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13199
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13200
* Prefer ex1I over ex_ex1I in single-step reasoning, e.g. by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13201
``rule'' method.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13202
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13203
* Reimplemented methods "sat" and "satx", with several improvements:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13204
goals no longer need to be stated as "<prems> ==> False", equivalences
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13205
(i.e. "=" on type bool) are handled, variable names of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13206
"lit_<n>" are no longer reserved, significant speedup.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13207
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13208
* Methods "sat" and "satx" can now replay MiniSat proof traces.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13209
zChaff is still supported as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13210
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13211
* 'inductive' and 'datatype': provide projections of mutual rules,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13212
bundled as foo_bar.inducts;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13213
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13214
* Library: moved theories Parity, GCD, Binomial, Infinite_Set to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13215
Library.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13216
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13217
* Library: moved theory Accessible_Part to main HOL.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13218
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13219
* Library: added theory Coinductive_List of potentially infinite lists
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13220
as greatest fixed-point.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13221
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13222
* Library: added theory AssocList which implements (finite) maps as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13223
association lists.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13224
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13225
* Method "evaluation" solves goals (i.e. a boolean expression)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13226
efficiently by compiling it to ML.  The goal is "proved" (via an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13227
oracle) if it evaluates to True.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13228
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13229
* Linear arithmetic now splits certain operators (e.g. min, max, abs)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13230
also when invoked by the simplifier.  This results in the Simplifier
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13231
being more powerful on arithmetic goals.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13232
Configuration option fast_arith_split_limit=0 recovers the old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13233
behavior.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13234
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13235
* Support for hex (0x20) and binary (0b1001) numerals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13236
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13237
* New method: reify eqs (t), where eqs are equations for an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13238
interpretation I :: 'a list => 'b => 'c and t::'c is an optional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13239
parameter, computes a term s::'b and a list xs::'a list and proves the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13240
theorem I xs s = t. This is also known as reification or quoting. The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13241
resulting theorem is applied to the subgoal to substitute t with I xs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13242
s.  If t is omitted, the subgoal itself is reified.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13243
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13244
* New method: reflection corr_thm eqs (t). The parameters eqs and (t)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13245
are as explained above. corr_thm is a theorem for I vs (f t) = I vs t,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13246
where f is supposed to be a computable function (in the sense of code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13247
generattion). The method uses reify to compute s and xs as above then
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13248
applies corr_thm and uses normalization by evaluation to "prove" f s =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13249
r and finally gets the theorem t = r, which is again applied to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13250
subgoal. An Example is available in src/HOL/ex/ReflectionEx.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13251
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13252
* Reflection: Automatic reification now handels binding, an example is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13253
available in src/HOL/ex/ReflectionEx.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13254
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13255
* HOL-Statespace: ``State Spaces: The Locale Way'' introduces a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13256
command 'statespace' that is similar to 'record', but introduces an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13257
abstract specification based on the locale infrastructure instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13258
HOL types.  This leads to extra flexibility in composing state spaces,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13259
in particular multiple inheritance and renaming of components.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13260
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13261
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13262
*** HOL-Complex ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13263
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13264
* Hyperreal: Functions root and sqrt are now defined on negative real
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13265
inputs so that root n (- x) = - root n x and sqrt (- x) = - sqrt x.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13266
Nonnegativity side conditions have been removed from many lemmas, so
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13267
that more subgoals may now be solved by simplification; potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13268
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13269
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13270
* Real: new type classes formalize real normed vector spaces and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13271
algebras, using new overloaded constants scaleR :: real => 'a => 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13272
and norm :: 'a => real.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13273
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13274
* Real: constant of_real :: real => 'a::real_algebra_1 injects from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13275
reals into other types. The overloaded constant Reals :: 'a set is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13276
defined as range of_real; potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13277
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13278
* Real: proper support for ML code generation, including 'quickcheck'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13279
Reals are implemented as arbitrary precision rationals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13280
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13281
* Hyperreal: Several constants that previously worked only for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13282
reals have been generalized, so they now work over arbitrary vector
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13283
spaces. Type annotations may need to be added in some cases; potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13284
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13285
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13286
  Infinitesimal  :: ('a::real_normed_vector) star set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13287
  HFinite        :: ('a::real_normed_vector) star set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13288
  HInfinite      :: ('a::real_normed_vector) star set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13289
  approx         :: ('a::real_normed_vector) star => 'a star => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13290
  monad          :: ('a::real_normed_vector) star => 'a star set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13291
  galaxy         :: ('a::real_normed_vector) star => 'a star set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13292
  (NS)LIMSEQ     :: [nat => 'a::real_normed_vector, 'a] => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13293
  (NS)convergent :: (nat => 'a::real_normed_vector) => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13294
  (NS)Bseq       :: (nat => 'a::real_normed_vector) => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13295
  (NS)Cauchy     :: (nat => 'a::real_normed_vector) => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13296
  (NS)LIM        :: ['a::real_normed_vector => 'b::real_normed_vector, 'a, 'b] => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13297
  is(NS)Cont     :: ['a::real_normed_vector => 'b::real_normed_vector, 'a] => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13298
  deriv          :: ['a::real_normed_field => 'a, 'a, 'a] => bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13299
  sgn            :: 'a::real_normed_vector => 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13300
  exp            :: 'a::{recpower,real_normed_field,banach} => 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13301
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13302
* Complex: Some complex-specific constants are now abbreviations for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13303
overloaded ones: complex_of_real = of_real, cmod = norm, hcmod =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13304
hnorm.  Other constants have been entirely removed in favor of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13305
polymorphic versions (INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13306
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13307
  approx        <-- capprox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13308
  HFinite       <-- CFinite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13309
  HInfinite     <-- CInfinite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13310
  Infinitesimal <-- CInfinitesimal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13311
  monad         <-- cmonad
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13312
  galaxy        <-- cgalaxy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13313
  (NS)LIM       <-- (NS)CLIM, (NS)CRLIM
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13314
  is(NS)Cont    <-- is(NS)Contc, is(NS)contCR
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13315
  (ns)deriv     <-- (ns)cderiv
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13316
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13317
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13318
*** HOL-Algebra ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13319
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13320
* Formalisation of ideals and the quotient construction over rings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13321
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13322
* Order and lattice theory no longer based on records.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13323
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13324
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13325
* Renamed lemmas least_carrier -> least_closed and greatest_carrier ->
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13326
greatest_closed.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13327
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13328
* Method algebra is now set up via an attribute.  For examples see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13329
Ring.thy.  INCOMPATIBILITY: the method is now weaker on combinations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13330
of algebraic structures.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13331
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13332
* Renamed theory CRing to Ring.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13333
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13334
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13335
*** HOL-Nominal ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13336
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13337
* Substantial, yet incomplete support for nominal datatypes (binding
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13338
structures) based on HOL-Nominal logic.  See src/HOL/Nominal and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13339
src/HOL/Nominal/Examples.  Prospective users should consult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13340
http://isabelle.in.tum.de/nominal/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13341
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13342
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13343
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13344
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13345
* ML basics: just one true type int, which coincides with IntInf.int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13346
(even on SML/NJ).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13347
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13348
* ML within Isar: antiquotations allow to embed statically-checked
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13349
formal entities in the source, referring to the context available at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13350
compile-time.  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13351
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13352
ML {* @{sort "{zero,one}"} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13353
ML {* @{typ "'a => 'b"} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13354
ML {* @{term "%x. x"} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13355
ML {* @{prop "x == y"} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13356
ML {* @{ctyp "'a => 'b"} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13357
ML {* @{cterm "%x. x"} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13358
ML {* @{cprop "x == y"} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13359
ML {* @{thm asm_rl} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13360
ML {* @{thms asm_rl} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13361
ML {* @{type_name c} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13362
ML {* @{type_syntax c} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13363
ML {* @{const_name c} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13364
ML {* @{const_syntax c} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13365
ML {* @{context} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13366
ML {* @{theory} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13367
ML {* @{theory Pure} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13368
ML {* @{theory_ref} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13369
ML {* @{theory_ref Pure} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13370
ML {* @{simpset} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13371
ML {* @{claset} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13372
ML {* @{clasimpset} *}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13373
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13374
The same works for sources being ``used'' within an Isar context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13375
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13376
* ML in Isar: improved error reporting; extra verbosity with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13377
ML_Context.trace enabled.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13378
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13379
* Pure/General/table.ML: the join operations now works via exceptions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13380
DUP/SAME instead of type option. This is simpler in simple cases, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13381
admits slightly more efficient complex applications.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13382
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13383
* Pure: 'advanced' translation functions (parse_translation etc.) now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13384
use Context.generic instead of just theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13385
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13386
* Pure: datatype Context.generic joins theory/Proof.context and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13387
provides some facilities for code that works in either kind of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13388
context, notably GenericDataFun for uniform theory and proof data.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13389
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13390
* Pure: simplified internal attribute type, which is now always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13391
Context.generic * thm -> Context.generic * thm. Global (theory) vs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13392
local (Proof.context) attributes have been discontinued, while
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13393
minimizing code duplication. Thm.rule_attribute and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13394
Thm.declaration_attribute build canonical attributes; see also structure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13395
Context for further operations on Context.generic, notably
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13396
GenericDataFun. INCOMPATIBILITY, need to adapt attribute type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13397
declarations and definitions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13398
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13399
* Context data interfaces (Theory/Proof/GenericDataFun): removed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13400
name/print, uninitialized data defaults to ad-hoc copy of empty value,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13401
init only required for impure data. INCOMPATIBILITY: empty really need
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13402
to be empty (no dependencies on theory content!)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13403
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13404
* Pure/kernel: consts certification ignores sort constraints given in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13405
signature declarations. (This information is not relevant to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13406
logic, but only for type inference.) SIGNIFICANT INTERNAL CHANGE,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13407
potential INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13408
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13409
* Pure: axiomatic type classes are now purely definitional, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13410
explicit proofs of class axioms and super class relations performed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13411
internally. See Pure/axclass.ML for the main internal interfaces --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13412
notably AxClass.define_class supercedes AxClass.add_axclass, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13413
AxClass.axiomatize_class/classrel/arity supersede
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13414
Sign.add_classes/classrel/arities.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13415
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13416
* Pure/Isar: Args/Attrib parsers operate on Context.generic --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13417
global/local versions on theory vs. Proof.context have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13418
discontinued; Attrib.syntax and Method.syntax have been adapted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13419
accordingly.  INCOMPATIBILITY, need to adapt parser expressions for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13420
attributes, methods, etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13421
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13422
* Pure: several functions of signature "... -> theory -> theory * ..."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13423
have been reoriented to "... -> theory -> ... * theory" in order to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13424
allow natural usage in combination with the ||>, ||>>, |-> and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13425
fold_map combinators.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13426
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13427
* Pure: official theorem names (closed derivations) and additional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13428
comments (tags) are now strictly separate.  Name hints -- which are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13429
maintained as tags -- may be attached any time without affecting the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13430
derivation.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13431
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13432
* Pure: primitive rule lift_rule now takes goal cterm instead of an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13433
actual goal state (thm).  Use Thm.lift_rule (Thm.cprem_of st i) to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13434
achieve the old behaviour.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13435
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13436
* Pure: the "Goal" constant is now called "prop", supporting a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13437
slightly more general idea of ``protecting'' meta-level rule
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13438
statements.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13439
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13440
* Pure: Logic.(un)varify only works in a global context, which is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13441
enforced instead of silently assumed.  INCOMPATIBILITY, may use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13442
Logic.legacy_(un)varify as temporary workaround.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13444
* Pure: structure Name provides scalable operations for generating
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13445
internal variable names, notably Name.variants etc.  This replaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13446
some popular functions from term.ML:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13447
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13448
  Term.variant		->  Name.variant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13449
  Term.variantlist	->  Name.variant_list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13450
  Term.invent_names	->  Name.invent_list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13451
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13452
Note that low-level renaming rarely occurs in new code -- operations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13453
from structure Variable are used instead (see below).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13454
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13455
* Pure: structure Variable provides fundamental operations for proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13456
treatment of fixed/schematic variables in a context.  For example,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13457
Variable.import introduces fixes for schematics of given facts and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13458
Variable.export reverses the effect (up to renaming) -- this replaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13459
various freeze_thaw operations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13460
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13461
* Pure: structure Goal provides simple interfaces for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13462
init/conclude/finish and tactical prove operations (replacing former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13463
Tactic.prove).  Goal.prove is the canonical way to prove results
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13464
within a given context; Goal.prove_global is a degraded version for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13465
theory level goals, including a global Drule.standard.  Note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13466
OldGoals.prove_goalw_cterm has long been obsolete, since it is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13467
ill-behaved in a local proof context (e.g. with local fixes/assumes or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13468
in a locale context).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13469
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13470
* Pure/Syntax: generic interfaces for parsing (Syntax.parse_term etc.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13471
and type checking (Syntax.check_term etc.), with common combinations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13472
(Syntax.read_term etc.). These supersede former Sign.read_term etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13473
which are considered legacy and await removal.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13474
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13475
* Pure/Syntax: generic interfaces for type unchecking
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13476
(Syntax.uncheck_terms etc.) and unparsing (Syntax.unparse_term etc.),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13477
with common combinations (Syntax.pretty_term, Syntax.string_of_term
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13478
etc.).  Former Sign.pretty_term, Sign.string_of_term etc. are still
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13479
available for convenience, but refer to the very same operations using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13480
a mere theory instead of a full context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13481
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13482
* Isar: simplified treatment of user-level errors, using exception
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13483
ERROR of string uniformly.  Function error now merely raises ERROR,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13484
without any side effect on output channels.  The Isar toplevel takes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13485
care of proper display of ERROR exceptions.  ML code may use plain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13486
handle/can/try; cat_error may be used to concatenate errors like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13487
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13488
  ... handle ERROR msg => cat_error msg "..."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13489
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13490
Toplevel ML code (run directly or through the Isar toplevel) may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13491
embedded into the Isar toplevel with exception display/debug like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13492
this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13493
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13494
  Isar.toplevel (fn () => ...)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13495
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13496
INCOMPATIBILITY, removed special transform_error facilities, removed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13497
obsolete variants of user-level exceptions (ERROR_MESSAGE,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13498
Context.PROOF, ProofContext.CONTEXT, Proof.STATE, ProofHistory.FAIL)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13499
-- use plain ERROR instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13500
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13501
* Isar: theory setup now has type (theory -> theory), instead of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13502
list.  INCOMPATIBILITY, may use #> to compose setup functions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13503
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13504
* Isar: ML toplevel pretty printer for type Proof.context, subject to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13505
ProofContext.debug/verbose flags.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13506
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13507
* Isar: Toplevel.theory_to_proof admits transactions that modify the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13508
theory before entering a proof state.  Transactions now always see a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13509
quasi-functional intermediate checkpoint, both in interactive and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13510
batch mode.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13511
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13512
* Isar: simplified interfaces for outer syntax.  Renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13513
OuterSyntax.add_keywords to OuterSyntax.keywords.  Removed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13514
OuterSyntax.add_parsers -- this functionality is now included in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13515
OuterSyntax.command etc.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13516
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13517
* Simplifier: the simpset of a running simplification process now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13518
contains a proof context (cf. Simplifier.the_context), which is the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13519
very context that the initial simpset has been retrieved from (by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13520
simpset_of/local_simpset_of).  Consequently, all plug-in components
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13521
(solver, looper etc.) may depend on arbitrary proof data.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13522
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13523
* Simplifier.inherit_context inherits the proof context (plus the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13524
local bounds) of the current simplification process; any simproc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13525
etc. that calls the Simplifier recursively should do this!  Removed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13526
former Simplifier.inherit_bounds, which is already included here --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13527
INCOMPATIBILITY.  Tools based on low-level rewriting may even have to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13528
specify an explicit context using Simplifier.context/theory_context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13529
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13530
* Simplifier/Classical Reasoner: more abstract interfaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13531
change_simpset/claset for modifying the simpset/claset reference of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13532
theory; raw versions simpset/claset_ref etc. have been discontinued --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13533
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13534
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13535
* Provers: more generic wrt. syntax of object-logics, avoid hardwired
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13536
"Trueprop" etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13537
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13538
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13539
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13540
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13541
* settings: the default heap location within ISABELLE_HOME_USER now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13542
includes ISABELLE_IDENTIFIER.  This simplifies use of multiple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13543
Isabelle installations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13544
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13545
* isabelle-process: option -S (secure mode) disables some critical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13546
operations, notably runtime compilation and evaluation of ML source
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13547
code.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13548
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13549
* Basic Isabelle mode for jEdit, see Isabelle/lib/jedit/.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13550
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13551
* Support for parallel execution, using native multicore support of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13552
Poly/ML 5.1.  The theory loader exploits parallelism when processing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13553
independent theories, according to the given theory header
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13554
specifications. The maximum number of worker threads is specified via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13555
usedir option -M or the "max-threads" setting in Proof General. A
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13556
speedup factor of 1.5--3.5 can be expected on a 4-core machine, and up
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13557
to 6 on a 8-core machine.  User-code needs to observe certain
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13558
guidelines for thread-safe programming, see appendix A in the Isar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13559
Implementation manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13560
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13561
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13562
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13563
New in Isabelle2005 (October 2005)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13564
----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13565
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13566
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13567
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13568
* Theory headers: the new header syntax for Isar theories is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13569
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13570
  theory <name>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13571
  imports <theory1> ... <theoryN>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13572
  uses <file1> ... <fileM>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13573
  begin
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13574
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13575
where the 'uses' part is optional.  The previous syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13576
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13577
  theory <name> = <theory1> + ... + <theoryN>:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13578
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13579
will disappear in the next release.  Use isatool fixheaders to convert
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13580
existing theory files.  Note that there is no change in ancient
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13581
non-Isar theories now, but these will disappear soon.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13582
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13583
* Theory loader: parent theories can now also be referred to via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13584
relative and absolute paths.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13585
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13586
* Command 'find_theorems' searches for a list of criteria instead of a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13587
list of constants. Known criteria are: intro, elim, dest, name:string,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13588
simp:term, and any term. Criteria can be preceded by '-' to select
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13589
theorems that do not match. Intro, elim, dest select theorems that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13590
match the current goal, name:s selects theorems whose fully qualified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13591
name contain s, and simp:term selects all simplification rules whose
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13592
lhs match term.  Any other term is interpreted as pattern and selects
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13593
all theorems matching the pattern. Available in ProofGeneral under
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13594
'ProofGeneral -> Find Theorems' or C-c C-f.  Example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13595
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13596
  C-c C-f (100) "(_::nat) + _ + _" intro -name: "HOL."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13597
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13598
prints the last 100 theorems matching the pattern "(_::nat) + _ + _",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13599
matching the current goal as introduction rule and not having "HOL."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13600
in their name (i.e. not being defined in theory HOL).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13601
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13602
* Command 'thms_containing' has been discontinued in favour of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13603
'find_theorems'; INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13604
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13605
* Communication with Proof General is now 8bit clean, which means that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13606
Unicode text in UTF-8 encoding may be used within theory texts (both
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13607
formal and informal parts).  Cf. option -U of the Isabelle Proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13608
General interface.  Here are some simple examples (cf. src/HOL/ex):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13609
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13610
  http://isabelle.in.tum.de/library/HOL/ex/Hebrew.html
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13611
  http://isabelle.in.tum.de/library/HOL/ex/Chinese.html
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13612
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13613
* Improved efficiency of the Simplifier and, to a lesser degree, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13614
Classical Reasoner.  Typical big applications run around 2 times
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13615
faster.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13616
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13617
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13618
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13619
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13620
* Commands 'display_drafts' and 'print_drafts' perform simple output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13621
of raw sources.  Only those symbols that do not require additional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13622
LaTeX packages (depending on comments in isabellesym.sty) are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13623
displayed properly, everything else is left verbatim.  isatool display
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13624
and isatool print are used as front ends (these are subject to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13625
DVI/PDF_VIEWER and PRINT_COMMAND settings, respectively).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13626
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13627
* Command tags control specific markup of certain regions of text,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13628
notably folding and hiding.  Predefined tags include "theory" (for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13629
theory begin and end), "proof" for proof commands, and "ML" for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13630
commands involving ML code; the additional tags "visible" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13631
"invisible" are unused by default.  Users may give explicit tag
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13632
specifications in the text, e.g. ''by %invisible (auto)''.  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13633
interpretation of tags is determined by the LaTeX job during document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13634
preparation: see option -V of isatool usedir, or options -n and -t of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13635
isatool document, or even the LaTeX macros \isakeeptag, \isafoldtag,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13636
\isadroptag.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13637
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13638
Several document versions may be produced at the same time via isatool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13639
usedir (the generated index.html will link all of them).  Typical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13640
specifications include ''-V document=theory,proof,ML'' to present
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13641
theory/proof/ML parts faithfully, ''-V outline=/proof,/ML'' to fold
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13642
proof and ML commands, and ''-V mutilated=-theory,-proof,-ML'' to omit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13643
these parts without any formal replacement text.  The Isabelle site
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13644
default settings produce ''document'' and ''outline'' versions as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13645
specified above.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13646
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13647
* Several new antiquotations:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13648
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13649
  @{term_type term} prints a term with its type annotated;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13650
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13651
  @{typeof term} prints the type of a term;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13652
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13653
  @{const const} is the same as @{term const}, but checks that the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13654
  argument is a known logical constant;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13655
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13656
  @{term_style style term} and @{thm_style style thm} print a term or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13657
  theorem applying a "style" to it
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13658
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13659
  @{ML text}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13660
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13661
Predefined styles are 'lhs' and 'rhs' printing the lhs/rhs of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13662
definitions, equations, inequations etc., 'concl' printing only the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13663
conclusion of a meta-logical statement theorem, and 'prem1' .. 'prem19'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13664
to print the specified premise.  TermStyle.add_style provides an ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13665
interface for introducing further styles.  See also the "LaTeX Sugar"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13666
document practical applications.  The ML antiquotation prints
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13667
type-checked ML expressions verbatim.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13668
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13669
* Markup commands 'chapter', 'section', 'subsection', 'subsubsection',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13670
and 'text' support optional locale specification '(in loc)', which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13671
specifies the default context for interpreting antiquotations.  For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13672
example: 'text (in lattice) {* @{thm inf_assoc}*}'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13673
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13674
* Option 'locale=NAME' of antiquotations specifies an alternative
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13675
context interpreting the subsequent argument.  For example: @{thm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13676
[locale=lattice] inf_assoc}.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13677
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13678
* Proper output of proof terms (@{prf ...} and @{full_prf ...}) within
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13679
a proof context.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13680
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13681
* Proper output of antiquotations for theory commands involving a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13682
proof context (such as 'locale' or 'theorem (in loc) ...').
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13683
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13684
* Delimiters of outer tokens (string etc.) now produce separate LaTeX
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13685
macros (\isachardoublequoteopen, isachardoublequoteclose etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13686
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13687
* isatool usedir: new option -C (default true) controls whether option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13688
-D should include a copy of the original document directory; -C false
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13689
prevents unwanted effects such as copying of administrative CVS data.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13690
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13691
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13692
*** Pure ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13693
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13694
* Considerably improved version of 'constdefs' command.  Now performs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13695
automatic type-inference of declared constants; additional support for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13696
local structure declarations (cf. locales and HOL records), see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13697
isar-ref manual.  Potential INCOMPATIBILITY: need to observe strictly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13698
sequential dependencies of definitions within a single 'constdefs'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13699
section; moreover, the declared name needs to be an identifier.  If
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13700
all fails, consider to fall back on 'consts' and 'defs' separately.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13701
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13702
* Improved indexed syntax and implicit structures.  First of all,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13703
indexed syntax provides a notational device for subscripted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13704
application, using the new syntax \<^bsub>term\<^esub> for arbitrary
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13705
expressions.  Secondly, in a local context with structure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13706
declarations, number indexes \<^sub>n or the empty index (default
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13707
number 1) refer to a certain fixed variable implicitly; option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13708
show_structs controls printing of implicit structures.  Typical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13709
applications of these concepts involve record types and locales.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13710
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13711
* New command 'no_syntax' removes grammar declarations (and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13712
translations) resulting from the given syntax specification, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13713
interpreted in the same manner as for the 'syntax' command.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13714
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13715
* 'Advanced' translation functions (parse_translation etc.) may depend
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13716
on the signature of the theory context being presently used for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13717
parsing/printing, see also isar-ref manual.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13718
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13719
* Improved 'oracle' command provides a type-safe interface to turn an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13720
ML expression of type theory -> T -> term into a primitive rule of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13721
type theory -> T -> thm (i.e. the functionality of Thm.invoke_oracle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13722
is already included here); see also FOL/ex/IffExample.thy;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13723
INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13724
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13725
* axclass: name space prefix for class "c" is now "c_class" (was "c"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13726
before); "cI" is no longer bound, use "c.intro" instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13727
INCOMPATIBILITY.  This change avoids clashes of fact bindings for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13728
axclasses vs. locales.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13729
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13730
* Improved internal renaming of symbolic identifiers -- attach primes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13731
instead of base 26 numbers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13732
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13733
* New flag show_question_marks controls printing of leading question
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13734
marks in schematic variable names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13735
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13736
* In schematic variable names, *any* symbol following \<^isub> or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13737
\<^isup> is now treated as part of the base name.  For example, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13738
following works without printing of awkward ".0" indexes:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13739
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13740
  lemma "x\<^isub>1 = x\<^isub>2 ==> x\<^isub>2 = x\<^isub>1"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13741
    by simp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13742
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13743
* Inner syntax includes (*(*nested*) comments*).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13744
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13745
* Pretty printer now supports unbreakable blocks, specified in mixfix
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13746
annotations as "(00...)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13747
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13748
* Clear separation of logical types and nonterminals, where the latter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13749
may only occur in 'syntax' specifications or type abbreviations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13750
Before that distinction was only partially implemented via type class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13751
"logic" vs. "{}".  Potential INCOMPATIBILITY in rare cases of improper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13752
use of 'types'/'consts' instead of 'nonterminals'/'syntax'.  Some very
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13753
exotic syntax specifications may require further adaption
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13754
(e.g. Cube/Cube.thy).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13755
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13756
* Removed obsolete type class "logic", use the top sort {} instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13757
Note that non-logical types should be declared as 'nonterminals'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13758
rather than 'types'.  INCOMPATIBILITY for new object-logic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13759
specifications.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13760
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13761
* Attributes 'induct' and 'cases': type or set names may now be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13762
locally fixed variables as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13763
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13764
* Simplifier: can now control the depth to which conditional rewriting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13765
is traced via the PG menu Isabelle -> Settings -> Trace Simp Depth
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13766
Limit.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13767
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13768
* Simplifier: simplification procedures may now take the current
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13769
simpset into account (cf. Simplifier.simproc(_i) / mk_simproc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13770
interface), which is very useful for calling the Simplifier
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13771
recursively.  Minor INCOMPATIBILITY: the 'prems' argument of simprocs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13772
is gone -- use prems_of_ss on the simpset instead.  Moreover, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13773
low-level mk_simproc no longer applies Logic.varify internally, to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13774
allow for use in a context of fixed variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13775
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13776
* thin_tac now works even if the assumption being deleted contains !!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13777
or ==>.  More generally, erule now works even if the major premise of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13778
the elimination rule contains !! or ==>.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13779
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13780
* Method 'rules' has been renamed to 'iprover'. INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13781
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13782
* Reorganized bootstrapping of the Pure theories; CPure is now derived
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13783
from Pure, which contains all common declarations already.  Both
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13784
theories are defined via plain Isabelle/Isar .thy files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13785
INCOMPATIBILITY: elements of CPure (such as the CPure.intro /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13786
CPure.elim / CPure.dest attributes) now appear in the Pure name space;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13787
use isatool fixcpure to adapt your theory and ML sources.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13788
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13789
* New syntax 'name(i-j, i-, i, ...)' for referring to specific
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13790
selections of theorems in named facts via index ranges.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13791
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13792
* 'print_theorems': in theory mode, really print the difference
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13793
wrt. the last state (works for interactive theory development only),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13794
in proof mode print all local facts (cf. 'print_facts');
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13795
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13796
* 'hide': option '(open)' hides only base names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13797
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13798
* More efficient treatment of intermediate checkpoints in interactive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13799
theory development.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13800
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13801
* Code generator is now invoked via code_module (incremental code
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13802
generation) and code_library (modular code generation, ML structures
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13803
for each theory).  INCOMPATIBILITY: new keywords 'file' and 'contains'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13804
must be quoted when used as identifiers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13805
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13806
* New 'value' command for reading, evaluating and printing terms using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13807
the code generator.  INCOMPATIBILITY: command keyword 'value' must be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13808
quoted when used as identifier.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13809
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13810
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13811
*** Locales ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13812
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13813
* New commands for the interpretation of locale expressions in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13814
theories (1), locales (2) and proof contexts (3).  These generate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13815
proof obligations from the expression specification.  After the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13816
obligations have been discharged, theorems of the expression are added
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13817
to the theory, target locale or proof context.  The synopsis of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13818
commands is a follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13819
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13820
  (1) interpretation expr inst
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13821
  (2) interpretation target < expr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13822
  (3) interpret expr inst
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13823
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13824
Interpretation in theories and proof contexts require a parameter
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13825
instantiation of terms from the current context.  This is applied to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13826
specifications and theorems of the interpreted expression.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13827
Interpretation in locales only permits parameter renaming through the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13828
locale expression.  Interpretation is smart in that interpretations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13829
that are active already do not occur in proof obligations, neither are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13830
instantiated theorems stored in duplicate.  Use 'print_interps' to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13831
inspect active interpretations of a particular locale.  For details,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13832
see the Isar Reference manual.  Examples can be found in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13833
HOL/Finite_Set.thy and HOL/Algebra/UnivPoly.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13834
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13835
INCOMPATIBILITY: former 'instantiate' has been withdrawn, use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13836
'interpret' instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13837
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13838
* New context element 'constrains' for adding type constraints to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13839
parameters.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13840
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13841
* Context expressions: renaming of parameters with syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13842
redeclaration.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13843
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13844
* Locale declaration: 'includes' disallowed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13845
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13846
* Proper static binding of attribute syntax -- i.e. types / terms /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13847
facts mentioned as arguments are always those of the locale definition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13848
context, independently of the context of later invocations.  Moreover,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13849
locale operations (renaming and type / term instantiation) are applied
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13850
to attribute arguments as expected.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13851
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13852
INCOMPATIBILITY of the ML interface: always pass Attrib.src instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13853
actual attributes; rare situations may require Attrib.attribute to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13854
embed those attributes into Attrib.src that lack concrete syntax.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13855
Attribute implementations need to cooperate properly with the static
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13856
binding mechanism.  Basic parsers Args.XXX_typ/term/prop and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13857
Attrib.XXX_thm etc. already do the right thing without further
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13858
intervention.  Only unusual applications -- such as "where" or "of"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13859
(cf. src/Pure/Isar/attrib.ML), which process arguments depending both
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13860
on the context and the facts involved -- may have to assign parsed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13861
values to argument tokens explicitly.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13862
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13863
* Changed parameter management in theorem generation for long goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13864
statements with 'includes'.  INCOMPATIBILITY: produces a different
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13865
theorem statement in rare situations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13866
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13867
* Locale inspection command 'print_locale' omits notes elements.  Use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13868
'print_locale!' to have them included in the output.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13869
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13870
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13871
*** Provers ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13872
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13873
* Provers/hypsubst.ML: improved version of the subst method, for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13874
single-step rewriting: it now works in bound variable contexts. New is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13875
'subst (asm)', for rewriting an assumption.  INCOMPATIBILITY: may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13876
rewrite a different subterm than the original subst method, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13877
still available as 'simplesubst'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13878
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13879
* Provers/quasi.ML: new transitivity reasoners for transitivity only
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13880
and quasi orders.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13881
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13882
* Provers/trancl.ML: new transitivity reasoner for transitive and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13883
reflexive-transitive closure of relations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13884
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13885
* Provers/blast.ML: new reference depth_limit to make blast's depth
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13886
limit (previously hard-coded with a value of 20) user-definable.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13887
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13888
* Provers/simplifier.ML has been moved to Pure, where Simplifier.setup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13889
is peformed already.  Object-logics merely need to finish their
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13890
initial simpset configuration as before.  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13891
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13892
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13893
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13894
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13895
* Symbolic syntax of Hilbert Choice Operator is now as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13896
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13897
  syntax (epsilon)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13898
    "_Eps" :: "[pttrn, bool] => 'a"    ("(3\<some>_./ _)" [0, 10] 10)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13899
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13900
The symbol \<some> is displayed as the alternative epsilon of LaTeX
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13901
and x-symbol; use option '-m epsilon' to get it actually printed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13902
Moreover, the mathematically important symbolic identifier \<epsilon>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13903
becomes available as variable, constant etc.  INCOMPATIBILITY,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13904
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13905
* "x > y" abbreviates "y < x" and "x >= y" abbreviates "y <= x".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13906
Similarly for all quantifiers: "ALL x > y" etc.  The x-symbol for >=
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13907
is \<ge>. New transitivity rules have been added to HOL/Orderings.thy to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13908
support corresponding Isar calculations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13909
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13910
* "{x:A. P}" abbreviates "{x. x:A & P}", and similarly for "\<in>"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13911
instead of ":".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13912
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13913
* theory SetInterval: changed the syntax for open intervals:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13914
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13915
  Old       New
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13916
  {..n(}    {..<n}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13917
  {)n..}    {n<..}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13918
  {m..n(}   {m..<n}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13919
  {)m..n}   {m<..n}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13920
  {)m..n(}  {m<..<n}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13921
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13922
The old syntax is still supported but will disappear in the next
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13923
release.  For conversion use the following Emacs search and replace
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13924
patterns (these are not perfect but work quite well):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13925
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13926
  {)\([^\.]*\)\.\.  ->  {\1<\.\.}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13927
  \.\.\([^(}]*\)(}  ->  \.\.<\1}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13928
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13929
* Theory Commutative_Ring (in Library): method comm_ring for proving
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13930
equalities in commutative rings; method 'algebra' provides a generic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13931
interface.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13932
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13933
* Theory Finite_Set: changed the syntax for 'setsum', summation over
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13934
finite sets: "setsum (%x. e) A", which used to be "\<Sum>x:A. e", is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13935
now either "SUM x:A. e" or "\<Sum>x \<in> A. e". The bound variable can
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13936
be a tuple pattern.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13937
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13938
Some new syntax forms are available:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13939
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13940
  "\<Sum>x | P. e"      for     "setsum (%x. e) {x. P}"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13941
  "\<Sum>x = a..b. e"   for     "setsum (%x. e) {a..b}"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13942
  "\<Sum>x = a..<b. e"  for     "setsum (%x. e) {a..<b}"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13943
  "\<Sum>x < k. e"      for     "setsum (%x. e) {..<k}"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13944
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13945
The latter form "\<Sum>x < k. e" used to be based on a separate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13946
function "Summation", which has been discontinued.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13947
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13948
* theory Finite_Set: in structured induction proofs, the insert case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13949
is now 'case (insert x F)' instead of the old counterintuitive 'case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13950
(insert F x)'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13951
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13952
* The 'refute' command has been extended to support a much larger
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13953
fragment of HOL, including axiomatic type classes, constdefs and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13954
typedefs, inductive datatypes and recursion.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13955
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13956
* New tactics 'sat' and 'satx' to prove propositional tautologies.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13957
Requires zChaff with proof generation to be installed.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13958
HOL/ex/SAT_Examples.thy for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13959
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13960
* Datatype induction via method 'induct' now preserves the name of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13961
induction variable. For example, when proving P(xs::'a list) by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13962
induction on xs, the induction step is now P(xs) ==> P(a#xs) rather
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13963
than P(list) ==> P(a#list) as previously.  Potential INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13964
in unstructured proof scripts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13965
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13966
* Reworked implementation of records.  Improved scalability for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13967
records with many fields, avoiding performance problems for type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13968
inference. Records are no longer composed of nested field types, but
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13969
of nested extension types. Therefore the record type only grows linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13970
in the number of extensions and not in the number of fields.  The
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13971
top-level (users) view on records is preserved.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13972
INCOMPATIBILITY only in strange cases, where the theory depends on the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13973
old record representation. The type generated for a record is called
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13974
<record_name>_ext_type.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13975
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13976
Flag record_quick_and_dirty_sensitive can be enabled to skip the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13977
proofs triggered by a record definition or a simproc (if
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13978
quick_and_dirty is enabled).  Definitions of large records can take
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13979
quite long.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13980
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13981
New simproc record_upd_simproc for simplification of multiple record
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13982
updates enabled by default.  Moreover, trivial updates are also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13983
removed: r(|x := x r|) = r.  INCOMPATIBILITY: old proofs break
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13984
occasionally, since simplification is more powerful by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13985
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13986
* typedef: proper support for polymorphic sets, which contain extra
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13987
type-variables in the term.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13988
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13989
* Simplifier: automatically reasons about transitivity chains
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13990
involving "trancl" (r^+) and "rtrancl" (r^*) by setting up tactics
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13991
provided by Provers/trancl.ML as additional solvers.  INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13992
old proofs break occasionally as simplification may now solve more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13993
goals than previously.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13994
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13995
* Simplifier: converts x <= y into x = y if assumption y <= x is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13996
present.  Works for all partial orders (class "order"), in particular
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13997
numbers and sets.  For linear orders (e.g. numbers) it treats ~ x < y
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13998
just like y <= x.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 13999
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14000
* Simplifier: new simproc for "let x = a in f x".  If a is a free or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14001
bound variable or a constant then the let is unfolded.  Otherwise
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14002
first a is simplified to b, and then f b is simplified to g. If
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14003
possible we abstract b from g arriving at "let x = b in h x",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14004
otherwise we unfold the let and arrive at g.  The simproc can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14005
enabled/disabled by the reference use_let_simproc.  Potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14006
INCOMPATIBILITY since simplification is more powerful by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14007
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14008
* Classical reasoning: the meson method now accepts theorems as arguments.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14009
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14010
* Prover support: pre-release of the Isabelle-ATP linkup, which runs background
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14011
jobs to provide advice on the provability of subgoals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14012
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14013
* Theory OrderedGroup and Ring_and_Field: various additions and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14014
improvements to faciliate calculations involving equalities and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14015
inequalities.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14016
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14017
The following theorems have been eliminated or modified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14018
(INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14019
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14020
  abs_eq             now named abs_of_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14021
  abs_of_ge_0        now named abs_of_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14022
  abs_minus_eq       now named abs_of_nonpos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14023
  imp_abs_id         now named abs_of_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14024
  imp_abs_neg_id     now named abs_of_nonpos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14025
  mult_pos           now named mult_pos_pos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14026
  mult_pos_le        now named mult_nonneg_nonneg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14027
  mult_pos_neg_le    now named mult_nonneg_nonpos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14028
  mult_pos_neg2_le   now named mult_nonneg_nonpos2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14029
  mult_neg           now named mult_neg_neg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14030
  mult_neg_le        now named mult_nonpos_nonpos
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14031
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14032
* The following lemmas in Ring_and_Field have been added to the simplifier:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14033
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14034
     zero_le_square
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14035
     not_square_less_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14036
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14037
  The following lemmas have been deleted from Real/RealPow:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14038
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14039
     realpow_zero_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14040
     realpow_two
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14041
     realpow_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14042
     zero_le_power
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14043
     realpow_two_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14044
     abs_realpow_two
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14045
     realpow_two_abs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14046
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14047
* Theory Parity: added rules for simplifying exponents.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14049
* Theory List:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14050
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14051
The following theorems have been eliminated or modified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14052
(INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14053
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14054
  list_all_Nil       now named list_all.simps(1)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14055
  list_all_Cons      now named list_all.simps(2)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14056
  list_all_conv      now named list_all_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14057
  set_mem_eq         now named mem_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14058
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14059
* Theories SetsAndFunctions and BigO (see HOL/Library) support
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14060
asymptotic "big O" calculations.  See the notes in BigO.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14061
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14062
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14063
*** HOL-Complex ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14064
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14065
* Theory RealDef: better support for embedding natural numbers and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14066
integers in the reals.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14067
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14068
The following theorems have been eliminated or modified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14069
(INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14070
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14071
  exp_ge_add_one_self  now requires no hypotheses
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14072
  real_of_int_add      reversed direction of equality (use [symmetric])
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14073
  real_of_int_minus    reversed direction of equality (use [symmetric])
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14074
  real_of_int_diff     reversed direction of equality (use [symmetric])
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14075
  real_of_int_mult     reversed direction of equality (use [symmetric])
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14076
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14077
* Theory RComplete: expanded support for floor and ceiling functions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14078
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14079
* Theory Ln is new, with properties of the natural logarithm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14080
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14081
* Hyperreal: There is a new type constructor "star" for making
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14082
nonstandard types.  The old type names are now type synonyms:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14083
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14084
  hypreal = real star
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14085
  hypnat = nat star
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14086
  hcomplex = complex star
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14088
* Hyperreal: Many groups of similarly-defined constants have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14089
replaced by polymorphic versions (INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14090
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14091
  star_of <-- hypreal_of_real, hypnat_of_nat, hcomplex_of_complex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14092
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14093
  starset      <-- starsetNat, starsetC
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14094
  *s*          <-- *sNat*, *sc*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14095
  starset_n    <-- starsetNat_n, starsetC_n
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14096
  *sn*         <-- *sNatn*, *scn*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14097
  InternalSets <-- InternalNatSets, InternalCSets
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14098
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14099
  starfun      <-- starfun{Nat,Nat2,C,RC,CR}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14100
  *f*          <-- *fNat*, *fNat2*, *fc*, *fRc*, *fcR*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14101
  starfun_n    <-- starfun{Nat,Nat2,C,RC,CR}_n
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14102
  *fn*         <-- *fNatn*, *fNat2n*, *fcn*, *fRcn*, *fcRn*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14103
  InternalFuns <-- InternalNatFuns, InternalNatFuns2, Internal{C,RC,CR}Funs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14104
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14105
* Hyperreal: Many type-specific theorems have been removed in favor of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14106
theorems specific to various axiomatic type classes (INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14107
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14108
  add_commute <-- {hypreal,hypnat,hcomplex}_add_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14109
  add_assoc   <-- {hypreal,hypnat,hcomplex}_add_assocs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14110
  OrderedGroup.add_0 <-- {hypreal,hypnat,hcomplex}_add_zero_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14111
  OrderedGroup.add_0_right <-- {hypreal,hcomplex}_add_zero_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14112
  right_minus <-- hypreal_add_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14113
  left_minus <-- {hypreal,hcomplex}_add_minus_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14114
  mult_commute <-- {hypreal,hypnat,hcomplex}_mult_commute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14115
  mult_assoc <-- {hypreal,hypnat,hcomplex}_mult_assoc
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14116
  mult_1_left <-- {hypreal,hypnat}_mult_1, hcomplex_mult_one_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14117
  mult_1_right <-- hcomplex_mult_one_right
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14118
  mult_zero_left <-- hcomplex_mult_zero_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14119
  left_distrib <-- {hypreal,hypnat,hcomplex}_add_mult_distrib
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14120
  right_distrib <-- hypnat_add_mult_distrib2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14121
  zero_neq_one <-- {hypreal,hypnat,hcomplex}_zero_not_eq_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14122
  right_inverse <-- hypreal_mult_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14123
  left_inverse <-- hypreal_mult_inverse_left, hcomplex_mult_inv_left
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14124
  order_refl <-- {hypreal,hypnat}_le_refl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14125
  order_trans <-- {hypreal,hypnat}_le_trans
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14126
  order_antisym <-- {hypreal,hypnat}_le_anti_sym
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14127
  order_less_le <-- {hypreal,hypnat}_less_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14128
  linorder_linear <-- {hypreal,hypnat}_le_linear
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14129
  add_left_mono <-- {hypreal,hypnat}_add_left_mono
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14130
  mult_strict_left_mono <-- {hypreal,hypnat}_mult_less_mono2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14131
  add_nonneg_nonneg <-- hypreal_le_add_order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14132
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14133
* Hyperreal: Separate theorems having to do with type-specific
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14134
versions of constants have been merged into theorems that apply to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14135
new polymorphic constants (INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14136
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14137
  STAR_UNIV_set <-- {STAR_real,NatStar_real,STARC_complex}_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14138
  STAR_empty_set <-- {STAR,NatStar,STARC}_empty_set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14139
  STAR_Un <-- {STAR,NatStar,STARC}_Un
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14140
  STAR_Int <-- {STAR,NatStar,STARC}_Int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14141
  STAR_Compl <-- {STAR,NatStar,STARC}_Compl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14142
  STAR_subset <-- {STAR,NatStar,STARC}_subset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14143
  STAR_mem <-- {STAR,NatStar,STARC}_mem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14144
  STAR_mem_Compl <-- {STAR,STARC}_mem_Compl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14145
  STAR_diff <-- {STAR,STARC}_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14146
  STAR_star_of_image_subset <-- {STAR_hypreal_of_real, NatStar_hypreal_of_real,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14147
    STARC_hcomplex_of_complex}_image_subset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14148
  starset_n_Un <-- starset{Nat,C}_n_Un
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14149
  starset_n_Int <-- starset{Nat,C}_n_Int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14150
  starset_n_Compl <-- starset{Nat,C}_n_Compl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14151
  starset_n_diff <-- starset{Nat,C}_n_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14152
  InternalSets_Un <-- Internal{Nat,C}Sets_Un
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14153
  InternalSets_Int <-- Internal{Nat,C}Sets_Int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14154
  InternalSets_Compl <-- Internal{Nat,C}Sets_Compl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14155
  InternalSets_diff <-- Internal{Nat,C}Sets_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14156
  InternalSets_UNIV_diff <-- Internal{Nat,C}Sets_UNIV_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14157
  InternalSets_starset_n <-- Internal{Nat,C}Sets_starset{Nat,C}_n
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14158
  starset_starset_n_eq <-- starset{Nat,C}_starset{Nat,C}_n_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14159
  starset_n_starset <-- starset{Nat,C}_n_starset{Nat,C}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14160
  starfun_n_starfun <-- starfun{Nat,Nat2,C,RC,CR}_n_starfun{Nat,Nat2,C,RC,CR}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14161
  starfun <-- starfun{Nat,Nat2,C,RC,CR}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14162
  starfun_mult <-- starfun{Nat,Nat2,C,RC,CR}_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14163
  starfun_add <-- starfun{Nat,Nat2,C,RC,CR}_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14164
  starfun_minus <-- starfun{Nat,Nat2,C,RC,CR}_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14165
  starfun_diff <-- starfun{C,RC,CR}_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14166
  starfun_o <-- starfun{NatNat2,Nat2,_stafunNat,C,C_starfunRC,_starfunCR}_o
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14167
  starfun_o2 <-- starfun{NatNat2,_stafunNat,C,C_starfunRC,_starfunCR}_o2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14168
  starfun_const_fun <-- starfun{Nat,Nat2,C,RC,CR}_const_fun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14169
  starfun_inverse <-- starfun{Nat,C,RC,CR}_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14170
  starfun_eq <-- starfun{Nat,Nat2,C,RC,CR}_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14171
  starfun_eq_iff <-- starfun{C,RC,CR}_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14172
  starfun_Id <-- starfunC_Id
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14173
  starfun_approx <-- starfun{Nat,CR}_approx
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14174
  starfun_capprox <-- starfun{C,RC}_capprox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14175
  starfun_abs <-- starfunNat_rabs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14176
  starfun_lambda_cancel <-- starfun{C,CR,RC}_lambda_cancel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14177
  starfun_lambda_cancel2 <-- starfun{C,CR,RC}_lambda_cancel2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14178
  starfun_mult_HFinite_approx <-- starfunCR_mult_HFinite_capprox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14179
  starfun_mult_CFinite_capprox <-- starfun{C,RC}_mult_CFinite_capprox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14180
  starfun_add_capprox <-- starfun{C,RC}_add_capprox
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14181
  starfun_add_approx <-- starfunCR_add_approx
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14182
  starfun_inverse_inverse <-- starfunC_inverse_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14183
  starfun_divide <-- starfun{C,CR,RC}_divide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14184
  starfun_n <-- starfun{Nat,C}_n
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14185
  starfun_n_mult <-- starfun{Nat,C}_n_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14186
  starfun_n_add <-- starfun{Nat,C}_n_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14187
  starfun_n_add_minus <-- starfunNat_n_add_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14188
  starfun_n_const_fun <-- starfun{Nat,C}_n_const_fun
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14189
  starfun_n_minus <-- starfun{Nat,C}_n_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14190
  starfun_n_eq <-- starfun{Nat,C}_n_eq
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14191
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14192
  star_n_add <-- {hypreal,hypnat,hcomplex}_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14193
  star_n_minus <-- {hypreal,hcomplex}_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14194
  star_n_diff <-- {hypreal,hcomplex}_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14195
  star_n_mult <-- {hypreal,hcomplex}_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14196
  star_n_inverse <-- {hypreal,hcomplex}_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14197
  star_n_le <-- {hypreal,hypnat}_le
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14198
  star_n_less <-- {hypreal,hypnat}_less
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14199
  star_n_zero_num <-- {hypreal,hypnat,hcomplex}_zero_num
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14200
  star_n_one_num <-- {hypreal,hypnat,hcomplex}_one_num
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14201
  star_n_abs <-- hypreal_hrabs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14202
  star_n_divide <-- hcomplex_divide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14203
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14204
  star_of_add <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_add
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14205
  star_of_minus <-- {hypreal_of_real,hcomplex_of_complex}_minus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14206
  star_of_diff <-- hypreal_of_real_diff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14207
  star_of_mult <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_mult
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14208
  star_of_one <-- {hypreal_of_real,hcomplex_of_complex}_one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14209
  star_of_zero <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_zero
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14210
  star_of_le <-- {hypreal_of_real,hypnat_of_nat}_le_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14211
  star_of_less <-- {hypreal_of_real,hypnat_of_nat}_less_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14212
  star_of_eq <-- {hypreal_of_real,hypnat_of_nat,hcomplex_of_complex}_eq_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14213
  star_of_inverse <-- {hypreal_of_real,hcomplex_of_complex}_inverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14214
  star_of_divide <-- {hypreal_of_real,hcomplex_of_complex}_divide
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14215
  star_of_of_nat <-- {hypreal_of_real,hcomplex_of_complex}_of_nat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14216
  star_of_of_int <-- {hypreal_of_real,hcomplex_of_complex}_of_int
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14217
  star_of_number_of <-- {hypreal,hcomplex}_number_of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14218
  star_of_number_less <-- number_of_less_hypreal_of_real_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14219
  star_of_number_le <-- number_of_le_hypreal_of_real_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14220
  star_of_eq_number <-- hypreal_of_real_eq_number_of_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14221
  star_of_less_number <-- hypreal_of_real_less_number_of_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14222
  star_of_le_number <-- hypreal_of_real_le_number_of_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14223
  star_of_power <-- hypreal_of_real_power
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14224
  star_of_eq_0 <-- hcomplex_of_complex_zero_iff
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14225
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14226
* Hyperreal: new method "transfer" that implements the transfer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14227
principle of nonstandard analysis. With a subgoal that mentions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14228
nonstandard types like "'a star", the command "apply transfer"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14229
replaces it with an equivalent one that mentions only standard types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14230
To be successful, all free variables must have standard types; non-
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14231
standard variables must have explicit universal quantifiers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14232
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14233
* Hyperreal: A theory of Taylor series.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14234
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14235
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14236
*** HOLCF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14237
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14238
* Discontinued special version of 'constdefs' (which used to support
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14239
continuous functions) in favor of the general Pure one with full
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14240
type-inference.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14241
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14242
* New simplification procedure for solving continuity conditions; it
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14243
is much faster on terms with many nested lambda abstractions (cubic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14244
instead of exponential time).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14245
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14246
* New syntax for domain package: selector names are now optional.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14247
Parentheses should be omitted unless argument is lazy, for example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14248
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14249
  domain 'a stream = cons "'a" (lazy "'a stream")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14250
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14251
* New command 'fixrec' for defining recursive functions with pattern
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14252
matching; defining multiple functions with mutual recursion is also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14253
supported.  Patterns may include the constants cpair, spair, up, sinl,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14254
sinr, or any data constructor defined by the domain package. The given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14255
equations are proven as rewrite rules. See HOLCF/ex/Fixrec_ex.thy for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14256
syntax and examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14257
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14258
* New commands 'cpodef' and 'pcpodef' for defining predicate subtypes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14259
of cpo and pcpo types. Syntax is exactly like the 'typedef' command,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14260
but the proof obligation additionally includes an admissibility
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14261
requirement. The packages generate instances of class cpo or pcpo,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14262
with continuity and strictness theorems for Rep and Abs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14263
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14264
* HOLCF: Many theorems have been renamed according to a more standard naming
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14265
scheme (INCOMPATIBILITY):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14266
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14267
  foo_inject:  "foo$x = foo$y ==> x = y"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14268
  foo_eq:      "(foo$x = foo$y) = (x = y)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14269
  foo_less:    "(foo$x << foo$y) = (x << y)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14270
  foo_strict:  "foo$UU = UU"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14271
  foo_defined: "... ==> foo$x ~= UU"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14272
  foo_defined_iff: "(foo$x = UU) = (x = UU)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14273
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14274
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14275
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14276
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14277
* ZF/ex: theories Group and Ring provide examples in abstract algebra,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14278
including the First Isomorphism Theorem (on quotienting by the kernel
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14279
of a homomorphism).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14280
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14281
* ZF/Simplifier: install second copy of type solver that actually
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14282
makes use of TC rules declared to Isar proof contexts (or locales);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14283
the old version is still required for ML proof scripts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14284
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14285
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14286
*** Cube ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14287
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14288
* Converted to Isar theory format; use locales instead of axiomatic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14289
theories.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14290
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14291
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14292
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14293
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14294
* Pure/library.ML: added ##>, ##>>, #>> -- higher-order counterparts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14295
for ||>, ||>>, |>>,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14296
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14297
* Pure/library.ML no longer defines its own option datatype, but uses
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14298
that of the SML basis, which has constructors NONE and SOME instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14299
None and Some, as well as exception Option.Option instead of OPTION.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14300
The functions the, if_none, is_some, is_none have been adapted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14301
accordingly, while Option.map replaces apsome.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14302
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14303
* Pure/library.ML: the exception LIST has been given up in favour of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14304
the standard exceptions Empty and Subscript, as well as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14305
Library.UnequalLengths.  Function like Library.hd and Library.tl are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14306
superceded by the standard hd and tl functions etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14307
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14308
A number of basic list functions are no longer exported to the ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14309
toplevel, as they are variants of predefined functions.  The following
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14310
suggests how one can translate existing code:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14311
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14312
    rev_append xs ys = List.revAppend (xs, ys)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14313
    nth_elem (i, xs) = List.nth (xs, i)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14314
    last_elem xs = List.last xs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14315
    flat xss = List.concat xss
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14316
    seq fs = List.app fs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14317
    partition P xs = List.partition P xs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14318
    mapfilter f xs = List.mapPartial f xs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14319
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14320
* Pure/library.ML: several combinators for linear functional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14321
transformations, notably reverse application and composition:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14322
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14323
  x |> f                f #> g
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14324
  (x, y) |-> f          f #-> g
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14325
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14326
* Pure/library.ML: introduced/changed precedence of infix operators:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14327
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14328
  infix 1 |> |-> ||> ||>> |>> |>>> #> #->;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14329
  infix 2 ?;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14330
  infix 3 o oo ooo oooo;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14331
  infix 4 ~~ upto downto;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14332
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14333
Maybe INCOMPATIBILITY when any of those is used in conjunction with other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14334
infix operators.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14335
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14336
* Pure/library.ML: natural list combinators fold, fold_rev, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14337
fold_map support linear functional transformations and nesting.  For
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14338
example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14339
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14340
  fold f [x1, ..., xN] y =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14341
    y |> f x1 |> ... |> f xN
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14342
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14343
  (fold o fold) f [xs1, ..., xsN] y =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14344
    y |> fold f xs1 |> ... |> fold f xsN
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14345
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14346
  fold f [x1, ..., xN] =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14347
    f x1 #> ... #> f xN
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14348
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14349
  (fold o fold) f [xs1, ..., xsN] =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14350
    fold f xs1 #> ... #> fold f xsN
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14351
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14352
* Pure/library.ML: the following selectors on type 'a option are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14353
available:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14354
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14355
  the:               'a option -> 'a  (*partial*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14356
  these:             'a option -> 'a  where 'a = 'b list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14357
  the_default: 'a -> 'a option -> 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14358
  the_list:          'a option -> 'a list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14359
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14360
* Pure/General: structure AList (cf. Pure/General/alist.ML) provides
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14361
basic operations for association lists, following natural argument
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14362
order; moreover the explicit equality predicate passed here avoids
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14363
potentially expensive polymorphic runtime equality checks.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14364
The old functions may be expressed as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14365
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14366
  assoc = uncurry (AList.lookup (op =))
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14367
  assocs = these oo AList.lookup (op =)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14368
  overwrite = uncurry (AList.update (op =)) o swap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14369
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14370
* Pure/General: structure AList (cf. Pure/General/alist.ML) provides
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14371
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14372
  val make: ('a -> 'b) -> 'a list -> ('a * 'b) list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14373
  val find: ('a * 'b -> bool) -> ('c * 'b) list -> 'a -> 'c list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14374
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14375
replacing make_keylist and keyfilter (occassionally used)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14376
Naive rewrites:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14377
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14378
  make_keylist = AList.make
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14379
  keyfilter = AList.find (op =)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14380
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14381
* eq_fst and eq_snd now take explicit equality parameter, thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14382
  avoiding eqtypes. Naive rewrites:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14383
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14384
    eq_fst = eq_fst (op =)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14385
    eq_snd = eq_snd (op =)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14386
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14387
* Removed deprecated apl and apr (rarely used).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14388
  Naive rewrites:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14389
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14390
    apl (n, op) =>>= curry op n
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14391
    apr (op, m) =>>= fn n => op (n, m)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14392
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14393
* Pure/General: structure OrdList (cf. Pure/General/ord_list.ML)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14394
provides a reasonably efficient light-weight implementation of sets as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14395
lists.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14396
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14397
* Pure/General: generic tables (cf. Pure/General/table.ML) provide a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14398
few new operations; existing lookup and update are now curried to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14399
follow natural argument order (for use with fold etc.);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14400
INCOMPATIBILITY, use (uncurry Symtab.lookup) etc. as last resort.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14401
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14402
* Pure/General: output via the Isabelle channels of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14403
writeln/warning/error etc. is now passed through Output.output, with a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14404
hook for arbitrary transformations depending on the print_mode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14405
(cf. Output.add_mode -- the first active mode that provides a output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14406
function wins).  Already formatted output may be embedded into further
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14407
text via Output.raw; the result of Pretty.string_of/str_of and derived
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14408
functions (string_of_term/cterm/thm etc.) is already marked raw to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14409
accommodate easy composition of diagnostic messages etc.  Programmers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14410
rarely need to care about Output.output or Output.raw at all, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14411
some notable exceptions: Output.output is required when bypassing the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14412
standard channels (writeln etc.), or in token translations to produce
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14413
properly formatted results; Output.raw is required when capturing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14414
already output material that will eventually be presented to the user
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14415
a second time.  For the default print mode, both Output.output and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14416
Output.raw have no effect.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14417
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14418
* Pure/General: Output.time_accumulator NAME creates an operator ('a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14419
-> 'b) -> 'a -> 'b to measure runtime and count invocations; the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14420
cumulative results are displayed at the end of a batch session.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14421
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14422
* Pure/General: File.sysify_path and File.quote_sysify path have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14423
replaced by File.platform_path and File.shell_path (with appropriate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14424
hooks).  This provides a clean interface for unusual systems where the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14425
internal and external process view of file names are different.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14426
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14427
* Pure: more efficient orders for basic syntactic entities: added
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14428
fast_string_ord, fast_indexname_ord, fast_term_ord; changed sort_ord
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14429
and typ_ord to use fast_string_ord and fast_indexname_ord (term_ord is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14430
NOT affected); structures Symtab, Vartab, Typtab, Termtab use the fast
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14431
orders now -- potential INCOMPATIBILITY for code that depends on a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14432
particular order for Symtab.keys, Symtab.dest, etc. (consider using
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14433
Library.sort_strings on result).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14434
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14435
* Pure/term.ML: combinators fold_atyps, fold_aterms, fold_term_types,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14436
fold_types traverse types/terms from left to right, observing natural
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14437
argument order.  Supercedes previous foldl_XXX versions, add_frees,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14438
add_vars etc. have been adapted as well: INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14439
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14440
* Pure: name spaces have been refined, with significant changes of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14441
internal interfaces -- INCOMPATIBILITY.  Renamed cond_extern(_table)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14442
to extern(_table).  The plain name entry path is superceded by a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14443
general 'naming' context, which also includes the 'policy' to produce
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14444
a fully qualified name and external accesses of a fully qualified
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14445
name; NameSpace.extend is superceded by context dependent
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14446
Sign.declare_name.  Several theory and proof context operations modify
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14447
the naming context.  Especially note Theory.restore_naming and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14448
ProofContext.restore_naming to get back to a sane state; note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14449
Theory.add_path is no longer sufficient to recover from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14450
Theory.absolute_path in particular.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14451
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14452
* Pure: new flags short_names (default false) and unique_names
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14453
(default true) for controlling output of qualified names.  If
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14454
short_names is set, names are printed unqualified.  If unique_names is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14455
reset, the name prefix is reduced to the minimum required to achieve
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14456
the original result when interning again, even if there is an overlap
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14457
with earlier declarations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14458
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14459
* Pure/TheoryDataFun: change of the argument structure; 'prep_ext' is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14460
now 'extend', and 'merge' gets an additional Pretty.pp argument
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14461
(useful for printing error messages).  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14462
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14463
* Pure: major reorganization of the theory context.  Type Sign.sg and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14464
Theory.theory are now identified, referring to the universal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14465
Context.theory (see Pure/context.ML).  Actual signature and theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14466
content is managed as theory data.  The old code and interfaces were
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14467
spread over many files and structures; the new arrangement introduces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14468
considerable INCOMPATIBILITY to gain more clarity:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14469
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14470
  Context -- theory management operations (name, identity, inclusion,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14471
    parents, ancestors, merge, etc.), plus generic theory data;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14472
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14473
  Sign -- logical signature and syntax operations (declaring consts,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14474
    types, etc.), plus certify/read for common entities;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14475
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14476
  Theory -- logical theory operations (stating axioms, definitions,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14477
    oracles), plus a copy of logical signature operations (consts,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14478
    types, etc.); also a few basic management operations (Theory.copy,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14479
    Theory.merge, etc.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14480
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14481
The most basic sign_of operations (Theory.sign_of, Thm.sign_of_thm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14482
etc.) as well as the sign field in Thm.rep_thm etc. have been retained
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14483
for convenience -- they merely return the theory.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14484
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14485
* Pure: type Type.tsig is superceded by theory in most interfaces.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14486
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14487
* Pure: the Isar proof context type is already defined early in Pure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14488
as Context.proof (note that ProofContext.context and Proof.context are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14489
aliases, where the latter is the preferred name).  This enables other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14490
Isabelle components to refer to that type even before Isar is present.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14491
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14492
* Pure/sign/theory: discontinued named name spaces (i.e. classK,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14493
typeK, constK, axiomK, oracleK), but provide explicit operations for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14494
any of these kinds.  For example, Sign.intern typeK is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14495
Sign.intern_type, Theory.hide_space Sign.typeK is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14496
Theory.hide_types.  Also note that former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14497
Theory.hide_classes/types/consts are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14498
Theory.hide_classes_i/types_i/consts_i, while the non '_i' versions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14499
internalize their arguments!  INCOMPATIBILITY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14500
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14501
* Pure: get_thm interface (of PureThy and ProofContext) expects
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14502
datatype thmref (with constructors Name and NameSelection) instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14503
plain string -- INCOMPATIBILITY;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14504
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14505
* Pure: cases produced by proof methods specify options, where NONE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14506
means to remove case bindings -- INCOMPATIBILITY in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14507
(RAW_)METHOD_CASES.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14508
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14509
* Pure: the following operations retrieve axioms or theorems from a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14510
theory node or theory hierarchy, respectively:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14511
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14512
  Theory.axioms_of: theory -> (string * term) list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14513
  Theory.all_axioms_of: theory -> (string * term) list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14514
  PureThy.thms_of: theory -> (string * thm) list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14515
  PureThy.all_thms_of: theory -> (string * thm) list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14516
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14517
* Pure: print_tac now outputs the goal through the trace channel.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14518
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14519
* Isar toplevel: improved diagnostics, mostly for Poly/ML only.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14520
Reference Toplevel.debug (default false) controls detailed printing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14521
and tracing of low-level exceptions; Toplevel.profiling (default 0)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14522
controls execution profiling -- set to 1 for time and 2 for space
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14523
(both increase the runtime).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14524
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14525
* Isar session: The initial use of ROOT.ML is now always timed,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14526
i.e. the log will show the actual process times, in contrast to the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14527
elapsed wall-clock time that the outer shell wrapper produces.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14528
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14529
* Simplifier: improved handling of bound variables (nameless
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14530
representation, avoid allocating new strings).  Simprocs that invoke
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14531
the Simplifier recursively should use Simplifier.inherit_bounds to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14532
avoid local name clashes.  Failure to do so produces warnings
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14533
"Simplifier: renamed bound variable ..."; set Simplifier.debug_bounds
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14534
for further details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14535
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14536
* ML functions legacy_bindings and use_legacy_bindings produce ML fact
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14537
bindings for all theorems stored within a given theory; this may help
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14538
in porting non-Isar theories to Isar ones, while keeping ML proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14539
scripts for the time being.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14540
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14541
* ML operator HTML.with_charset specifies the charset begin used for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14542
generated HTML files.  For example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14543
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14544
  HTML.with_charset "utf-8" use_thy "Hebrew";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14545
  HTML.with_charset "utf-8" use_thy "Chinese";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14546
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14547
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14548
*** System ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14549
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14550
* Allow symlinks to all proper Isabelle executables (Isabelle,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14551
isabelle, isatool etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14552
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14553
* ISABELLE_DOC_FORMAT setting specifies preferred document format (for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14554
isatool doc, isatool mkdir, display_drafts etc.).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14555
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14556
* isatool usedir: option -f allows specification of the ML file to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14557
used by Isabelle; default is ROOT.ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14558
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14559
* New isatool version outputs the version identifier of the Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14560
distribution being used.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14561
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14562
* HOL: new isatool dimacs2hol converts files in DIMACS CNF format
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14563
(containing Boolean satisfiability problems) into Isabelle/HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14564
theories.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14565
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14566
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14567
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14568
New in Isabelle2004 (April 2004)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14569
--------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14570
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14571
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14572
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14573
* Provers/order.ML:  new efficient reasoner for partial and linear orders.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14574
  Replaces linorder.ML.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14575
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14576
* Pure: Greek letters (except small lambda, \<lambda>), as well as Gothic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14577
  (\<aa>...\<zz>\<AA>...\<ZZ>), calligraphic (\<A>...\<Z>), and Euler
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14578
  (\<a>...\<z>), are now considered normal letters, and can therefore
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14579
  be used anywhere where an ASCII letter (a...zA...Z) has until
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14580
  now. COMPATIBILITY: This obviously changes the parsing of some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14581
  terms, especially where a symbol has been used as a binder, say
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14582
  '\<Pi>x. ...', which is now a type error since \<Pi>x will be parsed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14583
  as an identifier.  Fix it by inserting a space around former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14584
  symbols.  Call 'isatool fixgreek' to try to fix parsing errors in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14585
  existing theory and ML files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14586
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14587
* Pure: Macintosh and Windows line-breaks are now allowed in theory files.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14588
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14589
* Pure: single letter sub/superscripts (\<^isub> and \<^isup>) are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14590
  allowed in identifiers. Similar to Greek letters \<^isub> is now considered
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14591
  a normal (but invisible) letter. For multiple letter subscripts repeat
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14592
  \<^isub> like this: x\<^isub>1\<^isub>2.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14593
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14594
* Pure: There are now sub-/superscripts that can span more than one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14595
  character. Text between \<^bsub> and \<^esub> is set in subscript in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14596
  ProofGeneral and LaTeX, text between \<^bsup> and \<^esup> in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14597
  superscript. The new control characters are not identifier parts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14598
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14599
* Pure: Control-symbols of the form \<^raw:...> will literally print the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14600
  content of "..." to the latex file instead of \isacntrl... . The "..."
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14601
  may consist of any printable characters excluding the end bracket >.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14602
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14603
* Pure: Using new Isar command "finalconsts" (or the ML functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14604
  Theory.add_finals or Theory.add_finals_i) it is now possible to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14605
  declare constants "final", which prevents their being given a definition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14606
  later.  It is useful for constants whose behaviour is fixed axiomatically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14607
  rather than definitionally, such as the meta-logic connectives.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14608
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14609
* Pure: 'instance' now handles general arities with general sorts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14610
  (i.e. intersections of classes),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14611
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14612
* Presentation: generated HTML now uses a CSS style sheet to make layout
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14613
  (somewhat) independent of content. It is copied from lib/html/isabelle.css.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14614
  It can be changed to alter the colors/layout of generated pages.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14615
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14616
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14617
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14618
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14619
* Tactic emulation methods rule_tac, erule_tac, drule_tac, frule_tac,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14620
  cut_tac, subgoal_tac and thin_tac:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14621
  - Now understand static (Isar) contexts.  As a consequence, users of Isar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14622
    locales are no longer forced to write Isar proof scripts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14623
    For details see Isar Reference Manual, paragraph 4.3.2: Further tactic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14624
    emulations.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14625
  - INCOMPATIBILITY: names of variables to be instantiated may no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14626
    longer be enclosed in quotes.  Instead, precede variable name with `?'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14627
    This is consistent with the instantiation attribute "where".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14628
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14629
* Attributes "where" and "of":
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14630
  - Now take type variables of instantiated theorem into account when reading
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14631
    the instantiation string.  This fixes a bug that caused instantiated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14632
    theorems to have too special types in some circumstances.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14633
  - "where" permits explicit instantiations of type variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14634
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14635
* Calculation commands "moreover" and "also" no longer interfere with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14636
  current facts ("this"), admitting arbitrary combinations with "then"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14637
  and derived forms.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14638
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14639
* Locales:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14640
  - Goal statements involving the context element "includes" no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14641
    generate theorems with internal delta predicates (those ending on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14642
    "_axioms") in the premise.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14643
    Resolve particular premise with <locale>.intro to obtain old form.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14644
  - Fixed bug in type inference ("unify_frozen") that prevented mix of target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14645
    specification and "includes" elements in goal statement.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14646
  - Rule sets <locale>.intro and <locale>.axioms no longer declared as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14647
    [intro?] and [elim?] (respectively) by default.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14648
  - Experimental command for instantiation of locales in proof contexts:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14649
        instantiate <label>[<attrs>]: <loc>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14650
    Instantiates locale <loc> and adds all its theorems to the current context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14651
    taking into account their attributes.  Label and attrs are optional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14652
    modifiers, like in theorem declarations.  If present, names of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14653
    instantiated theorems are qualified with <label>, and the attributes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14654
    <attrs> are applied after any attributes these theorems might have already.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14655
      If the locale has assumptions, a chained fact of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14656
    "<loc> t1 ... tn" is expected from which instantiations of the parameters
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14657
    are derived.  The command does not support old-style locales declared
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14658
    with "locale (open)".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14659
      A few (very simple) examples can be found in FOL/ex/LocaleInst.thy.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14660
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14661
* HOL: Tactic emulation methods induct_tac and case_tac understand static
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14662
  (Isar) contexts.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14663
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14664
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14665
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14666
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14667
* Proof import: new image HOL4 contains the imported library from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14668
  the HOL4 system with about 2500 theorems. It is imported by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14669
  replaying proof terms produced by HOL4 in Isabelle. The HOL4 image
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14670
  can be used like any other Isabelle image.  See
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14671
  HOL/Import/HOL/README for more information.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14672
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14673
* Simplifier:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14674
  - Much improved handling of linear and partial orders.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14675
    Reasoners for linear and partial orders are set up for type classes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14676
    "linorder" and "order" respectively, and are added to the default simpset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14677
    as solvers.  This means that the simplifier can build transitivity chains
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14678
    to solve goals from the assumptions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14679
  - INCOMPATIBILITY: old proofs break occasionally.  Typically, applications
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14680
    of blast or auto after simplification become unnecessary because the goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14681
    is solved by simplification already.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14682
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14683
* Numerics: new theory Ring_and_Field contains over 250 basic numerical laws,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14684
    all proved in axiomatic type classes for semirings, rings and fields.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14685
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14686
* Numerics:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14687
  - Numeric types (nat, int, and in HOL-Complex rat, real, complex, etc.) are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14688
    now formalized using the Ring_and_Field theory mentioned above.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14689
  - INCOMPATIBILITY: simplification and arithmetic behaves somewhat differently
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14690
    than before, because now they are set up once in a generic manner.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14691
  - INCOMPATIBILITY: many type-specific arithmetic laws have gone.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14692
    Look for the general versions in Ring_and_Field (and Power if they concern
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14693
    exponentiation).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14694
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14695
* Type "rat" of the rational numbers is now available in HOL-Complex.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14696
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14697
* Records:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14698
  - Record types are now by default printed with their type abbreviation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14699
    instead of the list of all field types. This can be configured via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14700
    the reference "print_record_type_abbr".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14701
  - Simproc "record_upd_simproc" for simplification of multiple updates added
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14702
    (not enabled by default).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14703
  - Simproc "record_ex_sel_eq_simproc" to simplify EX x. sel r = x resp.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14704
    EX x. x = sel r to True (not enabled by default).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14705
  - Tactic "record_split_simp_tac" to split and simplify records added.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14706
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14707
* 'specification' command added, allowing for definition by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14708
  specification.  There is also an 'ax_specification' command that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14709
  introduces the new constants axiomatically.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14710
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14711
* arith(_tac) is now able to generate counterexamples for reals as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14712
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14713
* HOL-Algebra: new locale "ring" for non-commutative rings.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14714
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14715
* HOL-ex: InductiveInvariant_examples illustrates advanced recursive function
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14716
  definitions, thanks to Sava Krsti\'{c} and John Matthews.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14717
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14718
* HOL-Matrix: a first theory for matrices in HOL with an application of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14719
  matrix theory to linear programming.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14720
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14721
* Unions and Intersections:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14722
  The latex output syntax of UN and INT has been changed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14723
  from "\Union x \in A. B" to "\Union_{x \in A} B"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14724
  i.e. the index formulae has become a subscript.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14725
  Similarly for "\Union x. B", and for \Inter instead of \Union.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14726
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14727
* Unions and Intersections over Intervals:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14728
  There is new short syntax "UN i<=n. A" for "UN i:{0..n}. A". There is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14729
  also an x-symbol version with subscripts "\<Union>\<^bsub>i <= n\<^esub>. A"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14730
  like in normal math, and corresponding versions for < and for intersection.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14731
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14732
* HOL/List: Ordering "lexico" is renamed "lenlex" and the standard
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14733
  lexicographic dictonary ordering has been added as "lexord".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14734
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14735
* ML: the legacy theory structures Int and List have been removed. They had
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14736
  conflicted with ML Basis Library structures having the same names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14737
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14738
* 'refute' command added to search for (finite) countermodels.  Only works
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14739
  for a fragment of HOL.  The installation of an external SAT solver is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14740
  highly recommended.  See "HOL/Refute.thy" for details.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14741
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14742
* 'quickcheck' command: Allows to find counterexamples by evaluating
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14743
  formulae under an assignment of free variables to random values.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14744
  In contrast to 'refute', it can deal with inductive datatypes,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14745
  but cannot handle quantifiers. See "HOL/ex/Quickcheck_Examples.thy"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14746
  for examples.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14747
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14748
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14749
*** HOLCF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14751
* Streams now come with concatenation and are part of the HOLCF image
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14752
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14753
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14754
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14755
New in Isabelle2003 (May 2003)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14756
------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14757
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14758
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14759
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14760
* Provers/simplifier:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14761
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14762
  - Completely reimplemented method simp (ML: Asm_full_simp_tac):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14763
    Assumptions are now subject to complete mutual simplification,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14764
    not just from left to right. The simplifier now preserves
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14765
    the order of assumptions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14766
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14767
    Potential INCOMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14768
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14769
    -- simp sometimes diverges where the old version did
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14770
       not, e.g. invoking simp on the goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14771
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14772
        [| P (f x); y = x; f x = f y |] ==> Q
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14773
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14774
       now gives rise to the infinite reduction sequence
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14775
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14776
        P(f x) --(f x = f y)--> P(f y) --(y = x)--> P(f x) --(f x = f y)--> ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14777
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14778
       Using "simp (asm_lr)" (ML: Asm_lr_simp_tac) instead often solves this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14779
       kind of problem.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14780
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14781
    -- Tactics combining classical reasoner and simplification (such as auto)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14782
       are also affected by this change, because many of them rely on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14783
       simp. They may sometimes diverge as well or yield a different numbers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14784
       of subgoals. Try to use e.g. force, fastsimp, or safe instead of auto
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14785
       in case of problems. Sometimes subsequent calls to the classical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14786
       reasoner will fail because a preceeding call to the simplifier too
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14787
       eagerly simplified the goal, e.g. deleted redundant premises.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14788
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14789
  - The simplifier trace now shows the names of the applied rewrite rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14790
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14791
  - You can limit the number of recursive invocations of the simplifier
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14792
    during conditional rewriting (where the simplifie tries to solve the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14793
    conditions before applying the rewrite rule):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14794
    ML "simp_depth_limit := n"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14795
    where n is an integer. Thus you can force termination where previously
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14796
    the simplifier would diverge.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14797
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14798
  - Accepts free variables as head terms in congruence rules.  Useful in Isar.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14799
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14800
  - No longer aborts on failed congruence proof.  Instead, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14801
    congruence is ignored.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14802
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14803
* Pure: New generic framework for extracting programs from constructive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14804
  proofs. See HOL/Extraction.thy for an example instantiation, as well
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14805
  as HOL/Extraction for some case studies.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14806
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14807
* Pure: The main goal of the proof state is no longer shown by default, only
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14808
the subgoals. This behaviour is controlled by a new flag.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14809
   PG menu: Isabelle/Isar -> Settings -> Show Main Goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14810
(ML: Proof.show_main_goal).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14811
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14812
* Pure: You can find all matching introduction rules for subgoal 1, i.e. all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14813
rules whose conclusion matches subgoal 1:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14814
      PG menu: Isabelle/Isar -> Show me -> matching rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14815
The rules are ordered by how closely they match the subgoal.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14816
In particular, rules that solve a subgoal outright are displayed first
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14817
(or rather last, the way they are printed).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14818
(ML: ProofGeneral.print_intros())
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14819
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14820
* Pure: New flag trace_unify_fail causes unification to print
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14821
diagnostic information (PG: in trace buffer) when it fails. This is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14822
useful for figuring out why single step proofs like rule, erule or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14823
assumption failed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14824
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14825
* Pure: Locale specifications now produce predicate definitions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14826
according to the body of text (covering assumptions modulo local
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14827
definitions); predicate "loc_axioms" covers newly introduced text,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14828
while "loc" is cumulative wrt. all included locale expressions; the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14829
latter view is presented only on export into the global theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14830
context; potential INCOMPATIBILITY, use "(open)" option to fall back
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14831
on the old view without predicates;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14832
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14833
* Pure: predefined locales "var" and "struct" are useful for sharing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14834
parameters (as in CASL, for example); just specify something like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14835
``var x + var y + struct M'' as import;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14836
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14837
* Pure: improved thms_containing: proper indexing of facts instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14838
raw theorems; check validity of results wrt. current name space;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14839
include local facts of proof configuration (also covers active
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14840
locales), cover fixed variables in index; may use "_" in term
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14841
specification; an optional limit for the number of printed facts may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14842
be given (the default is 40);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14843
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14844
* Pure: disallow duplicate fact bindings within new-style theory files
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14845
(batch-mode only);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14846
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14847
* Provers: improved induct method: assumptions introduced by case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14848
"foo" are split into "foo.hyps" (from the rule) and "foo.prems" (from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14849
the goal statement); "foo" still refers to all facts collectively;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14850
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14851
* Provers: the function blast.overloaded has been removed: all constants
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14852
are regarded as potentially overloaded, which improves robustness in exchange
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14853
for slight decrease in efficiency;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14854
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14855
* Provers/linorder: New generic prover for transitivity reasoning over
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14856
linear orders.  Note: this prover is not efficient!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14857
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14858
* Isar: preview of problems to finish 'show' now produce an error
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14859
rather than just a warning (in interactive mode);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14860
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14861
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14862
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14863
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14864
* arith(_tac)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14865
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14866
 - Produces a counter example if it cannot prove a goal.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14867
   Note that the counter example may be spurious if the goal is not a formula
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14868
   of quantifier-free linear arithmetic.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14869
   In ProofGeneral the counter example appears in the trace buffer.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14870
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14871
 - Knows about div k and mod k where k is a numeral of type nat or int.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14872
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14873
 - Calls full Presburger arithmetic (by Amine Chaieb) if quantifier-free
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14874
   linear arithmetic fails. This takes account of quantifiers and divisibility.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14875
   Presburger arithmetic can also be called explicitly via presburger(_tac).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14876
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14877
* simp's arithmetic capabilities have been enhanced a bit: it now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14878
takes ~= in premises into account (by performing a case split);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14879
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14880
* simp reduces "m*(n div m) + n mod m" to n, even if the two summands
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14881
are distributed over a sum of terms;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14882
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14883
* New tactic "trans_tac" and method "trans" instantiate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14884
Provers/linorder.ML for axclasses "order" and "linorder" (predicates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14885
"<=", "<" and "=").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14886
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14887
* function INCOMPATIBILITIES: Pi-sets have been redefined and moved from main
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14888
HOL to Library/FuncSet; constant "Fun.op o" is now called "Fun.comp";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14889
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14890
* 'typedef' command has new option "open" to suppress the set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14891
definition;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14892
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14893
* functions Min and Max on finite sets have been introduced (theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14894
Finite_Set);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14895
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14896
* attribute [symmetric] now works for relations as well; it turns
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14897
(x,y) : R^-1 into (y,x) : R, and vice versa;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14899
* induct over a !!-quantified statement (say !!x1..xn):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14900
  each "case" automatically performs "fix x1 .. xn" with exactly those names.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14901
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14902
* Map: `empty' is no longer a constant but a syntactic abbreviation for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14903
%x. None. Warning: empty_def now refers to the previously hidden definition
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14904
of the empty set.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14905
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14906
* Algebra: formalization of classical algebra.  Intended as base for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14907
any algebraic development in Isabelle.  Currently covers group theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14908
(up to Sylow's theorem) and ring theory (Universal Property of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14909
Univariate Polynomials).  Contributions welcome;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14910
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14911
* GroupTheory: deleted, since its material has been moved to Algebra;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14912
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14913
* Complex: new directory of the complex numbers with numeric constants,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14914
nonstandard complex numbers, and some complex analysis, standard and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14915
nonstandard (Jacques Fleuriot);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14916
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14917
* HOL-Complex: new image for analysis, replacing HOL-Real and HOL-Hyperreal;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14918
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14919
* Hyperreal: introduced Gauge integration and hyperreal logarithms (Jacques
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14920
Fleuriot);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14921
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14922
* Real/HahnBanach: updated and adapted to locales;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14924
* NumberTheory: added Gauss's law of quadratic reciprocity (by Avigad,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14925
Gray and Kramer);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14926
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14927
* UNITY: added the Meier-Sanders theory of progress sets;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14928
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14929
* MicroJava: bytecode verifier and lightweight bytecode verifier
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14930
as abstract algorithms, instantiated to the JVM;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14931
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14932
* Bali: Java source language formalization. Type system, operational
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14933
semantics, axiomatic semantics. Supported language features:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14934
classes, interfaces, objects,virtual methods, static methods,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14935
static/instance fields, arrays, access modifiers, definite
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14936
assignment, exceptions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14937
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14938
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14939
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14940
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14941
* ZF/Constructible: consistency proof for AC (Gdel's constructible
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14942
universe, etc.);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14943
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14944
* Main ZF: virtually all theories converted to new-style format;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14945
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14946
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14947
*** ML ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14948
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14949
* Pure: Tactic.prove provides sane interface for internal proofs;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14950
omits the infamous "standard" operation, so this is more appropriate
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14951
than prove_goalw_cterm in many situations (e.g. in simprocs);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14952
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14953
* Pure: improved error reporting of simprocs;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14954
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14955
* Provers: Simplifier.simproc(_i) provides sane interface for setting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14956
up simprocs;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14957
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14958
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14959
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14960
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14961
* uses \par instead of \\ for line breaks in theory text. This may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14962
shift some page breaks in large documents. To get the old behaviour
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14963
use \renewcommand{\isanewline}{\mbox{}\\\mbox{}} in root.tex.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14964
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14965
* minimized dependencies of isabelle.sty and isabellesym.sty on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14966
other packages
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14967
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14968
* \<euro> now needs package babel/greek instead of marvosym (which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14969
broke \Rightarrow)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14970
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14971
* normal size for \<zero>...\<nine> (uses \mathbf instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14972
textcomp package)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14973
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14974
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14975
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14976
New in Isabelle2002 (March 2002)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14977
--------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14978
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14979
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14980
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14981
* greatly simplified document preparation setup, including more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14982
graceful interpretation of isatool usedir -i/-d/-D options, and more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14983
instructive isatool mkdir; users should basically be able to get
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14984
started with "isatool mkdir HOL Test && isatool make"; alternatively,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14985
users may run a separate document processing stage manually like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14986
"isatool usedir -D output HOL Test && isatool document Test/output";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14987
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14988
* theory dependency graph may now be incorporated into documents;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14989
isatool usedir -g true will produce session_graph.eps/.pdf for use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14990
with \includegraphics of LaTeX;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14991
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14992
* proper spacing of consecutive markup elements, especially text
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14993
blocks after section headings;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14994
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14995
* support bold style (for single symbols only), input syntax is like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14996
this: "\<^bold>\<alpha>" or "\<^bold>A";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14997
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14998
* \<bullet> is now output as bold \cdot by default, which looks much
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 14999
better in printed text;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15000
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15001
* added default LaTeX bindings for \<tturnstile> and \<TTurnstile>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15002
note that these symbols are currently unavailable in Proof General /
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15003
X-Symbol; new symbols \<zero>, \<one>, ..., \<nine>, and \<euro>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15004
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15005
* isatool latex no longer depends on changed TEXINPUTS, instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15006
isatool document copies the Isabelle style files to the target
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15007
location;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15008
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15009
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15010
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15011
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15012
* Pure/Provers: improved proof by cases and induction;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15013
  - 'case' command admits impromptu naming of parameters (such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15014
    "case (Suc n)");
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15015
  - 'induct' method divinates rule instantiation from the inductive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15016
    claim; no longer requires excessive ?P bindings for proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15017
    instantiation of cases;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15018
  - 'induct' method properly enumerates all possibilities of set/type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15019
    rules; as a consequence facts may be also passed through *type*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15020
    rules without further ado;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15021
  - 'induct' method now derives symbolic cases from the *rulified*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15022
    rule (before it used to rulify cases stemming from the internal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15023
    atomized version); this means that the context of a non-atomic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15024
    statement becomes is included in the hypothesis, avoiding the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15025
    slightly cumbersome show "PROP ?case" form;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15026
  - 'induct' may now use elim-style induction rules without chaining
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15027
    facts, using ``missing'' premises from the goal state; this allows
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15028
    rules stemming from inductive sets to be applied in unstructured
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15029
    scripts, while still benefitting from proper handling of non-atomic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15030
    statements; NB: major inductive premises need to be put first, all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15031
    the rest of the goal is passed through the induction;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15032
  - 'induct' proper support for mutual induction involving non-atomic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15033
    rule statements (uses the new concept of simultaneous goals, see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15034
    below);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15035
  - append all possible rule selections, but only use the first
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15036
    success (no backtracking);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15037
  - removed obsolete "(simplified)" and "(stripped)" options of methods;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15038
  - undeclared rule case names default to numbers 1, 2, 3, ...;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15039
  - added 'print_induct_rules' (covered by help item in recent Proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15040
    General versions);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15041
  - moved induct/cases attributes to Pure, methods to Provers;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15042
  - generic method setup instantiated for FOL and HOL;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15043
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15044
* Pure: support multiple simultaneous goal statements, for example
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15045
"have a: A and b: B" (same for 'theorem' etc.); being a pure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15046
meta-level mechanism, this acts as if several individual goals had
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15047
been stated separately; in particular common proof methods need to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15048
repeated in order to cover all claims; note that a single elimination
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15049
step is *not* sufficient to establish the two conjunctions, so this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15050
fails:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15051
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15052
  assume "A & B" then have A and B ..   (*".." fails*)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15053
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15054
better use "obtain" in situations as above; alternative refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15055
multi-step methods like 'auto', 'simp_all', 'blast+' etc.;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15056
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15057
* Pure: proper integration with ``locales''; unlike the original
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15058
version by Florian Kammller, Isar locales package high-level proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15059
contexts rather than raw logical ones (e.g. we admit to include
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15060
attributes everywhere); operations on locales include merge and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15061
rename; support for implicit arguments (``structures''); simultaneous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15062
type-inference over imports and text; see also HOL/ex/Locales.thy for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15063
some examples;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15064
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15065
* Pure: the following commands have been ``localized'', supporting a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15066
target locale specification "(in name)": 'lemma', 'theorem',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15067
'corollary', 'lemmas', 'theorems', 'declare'; the results will be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15068
stored both within the locale and at the theory level (exported and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15069
qualified by the locale name);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15070
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15071
* Pure: theory goals may now be specified in ``long'' form, with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15072
ad-hoc contexts consisting of arbitrary locale elements. for example
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15073
``lemma foo: fixes x assumes "A x" shows "B x"'' (local syntax and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15074
definitions may be given, too); the result is a meta-level rule with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15075
the context elements being discharged in the obvious way;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15076
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15077
* Pure: new proof command 'using' allows to augment currently used
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15078
facts after a goal statement ('using' is syntactically analogous to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15079
'apply', but acts on the goal's facts only); this allows chained facts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15080
to be separated into parts given before and after a claim, as in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15081
``from a and b have C using d and e <proof>'';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15082
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15083
* Pure: renamed "antecedent" case to "rule_context";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15084
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15085
* Pure: new 'judgment' command records explicit information about the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15086
object-logic embedding (used by several tools internally); no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15087
use hard-wired "Trueprop";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15088
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15089
* Pure: added 'corollary' command;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15090
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15091
* Pure: fixed 'token_translation' command;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15092
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15093
* Pure: removed obsolete 'exported' attribute;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15094
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15095
* Pure: dummy pattern "_" in is/let is now automatically lifted over
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15096
bound variables: "ALL x. P x --> Q x" (is "ALL x. _ --> ?C x")
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15097
supersedes more cumbersome ... (is "ALL x. _ x --> ?C x");
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15098
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15099
* Pure: method 'atomize' presents local goal premises as object-level
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15100
statements (atomic meta-level propositions); setup controlled via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15101
rewrite rules declarations of 'atomize' attribute; example
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15102
application: 'induct' method with proper rule statements in improper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15103
proof *scripts*;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15104
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15105
* Pure: emulation of instantiation tactics (rule_tac, cut_tac, etc.)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15106
now consider the syntactic context of assumptions, giving a better
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15107
chance to get type-inference of the arguments right (this is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15108
especially important for locales);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15109
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15110
* Pure: "sorry" no longer requires quick_and_dirty in interactive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15111
mode;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15112
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15113
* Pure/obtain: the formal conclusion "thesis", being marked as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15114
``internal'', may no longer be reference directly in the text;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15115
potential INCOMPATIBILITY, may need to use "?thesis" in rare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15116
situations;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15117
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15118
* Pure: generic 'sym' attribute which declares a rule both as pure
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15119
'elim?' and for the 'symmetric' operation;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15120
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15121
* Pure: marginal comments ``--'' may now occur just anywhere in the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15122
text; the fixed correlation with particular command syntax has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15123
discontinued;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15124
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15125
* Pure: new method 'rules' is particularly well-suited for proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15126
search in intuitionistic logic; a bit slower than 'blast' or 'fast',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15127
but often produces more compact proof terms with less detours;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15128
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15129
* Pure/Provers/classical: simplified integration with pure rule
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15130
attributes and methods; the classical "intro?/elim?/dest?"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15131
declarations coincide with the pure ones; the "rule" method no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15132
includes classically swapped intros; "intro" and "elim" methods no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15133
longer pick rules from the context; also got rid of ML declarations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15134
AddXIs/AddXEs/AddXDs; all of this has some potential for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15135
INCOMPATIBILITY;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15136
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15137
* Provers/classical: attribute 'swapped' produces classical inversions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15138
of introduction rules;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15139
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15140
* Provers/simplifier: 'simplified' attribute may refer to explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15141
rules instead of full simplifier context; 'iff' attribute handles
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15142
conditional rules;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15143
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15144
* HOL: 'typedef' now allows alternative names for Rep/Abs morphisms;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15145
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15146
* HOL: 'recdef' now fails on unfinished automated proofs, use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15147
"(permissive)" option to recover old behavior;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15148
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15149
* HOL: 'inductive' no longer features separate (collective) attributes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15150
for 'intros' (was found too confusing);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15151
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15152
* HOL: properly declared induction rules less_induct and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15153
wf_induct_rule;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15154
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15155
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15156
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15157
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15158
* HOL: moved over to sane numeral syntax; the new policy is as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15159
follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15160
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15161
  - 0 and 1 are polymorphic constants, which are defined on any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15162
  numeric type (nat, int, real etc.);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15163
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15164
  - 2, 3, 4, ... and -1, -2, -3, ... are polymorphic numerals, based
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15165
  binary representation internally;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15166
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15167
  - type nat has special constructor Suc, and generally prefers Suc 0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15168
  over 1::nat and Suc (Suc 0) over 2::nat;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15169
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15170
This change may cause significant problems of INCOMPATIBILITY; here
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15171
are some hints on converting existing sources:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15172
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15173
  - due to the new "num" token, "-0" and "-1" etc. are now atomic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15174
  entities, so expressions involving "-" (unary or binary minus) need
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15175
  to be spaced properly;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15176
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15177
  - existing occurrences of "1" may need to be constraint "1::nat" or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15178
  even replaced by Suc 0; similar for old "2";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15179
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15180
  - replace "#nnn" by "nnn", and "#-nnn" by "-nnn";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15181
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15182
  - remove all special provisions on numerals in proofs;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15183
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15184
* HOL: simp rules nat_number expand numerals on nat to Suc/0
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15185
representation (depends on bin_arith_simps in the default context);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15186
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15187
* HOL: symbolic syntax for x^2 (numeral 2);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15188
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15189
* HOL: the class of all HOL types is now called "type" rather than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15190
"term"; INCOMPATIBILITY, need to adapt references to this type class
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15191
in axclass/classes, instance/arities, and (usually rare) occurrences
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15192
in typings (of consts etc.); internally the class is called
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15193
"HOL.type", ML programs should refer to HOLogic.typeS;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15194
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15195
* HOL/record package improvements:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15196
  - new derived operations "fields" to build a partial record section,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15197
    "extend" to promote a fixed record to a record scheme, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15198
    "truncate" for the reverse; cf. theorems "xxx.defs", which are *not*
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15199
    declared as simp by default;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15200
  - shared operations ("more", "fields", etc.) now need to be always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15201
    qualified) --- potential INCOMPATIBILITY;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15202
  - removed "make_scheme" operations (use "make" with "extend") --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15203
    INCOMPATIBILITY;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15204
  - removed "more" class (simply use "term") -- INCOMPATIBILITY;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15205
  - provides cases/induct rules for use with corresponding Isar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15206
    methods (for concrete records, record schemes, concrete more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15207
    parts, and schematic more parts -- in that order);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15208
  - internal definitions directly based on a light-weight abstract
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15209
    theory of product types over typedef rather than datatype;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15210
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15211
* HOL: generic code generator for generating executable ML code from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15212
specifications; specific support for HOL constructs such as inductive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15213
datatypes and sets, as well as recursive functions; can be invoked
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15214
via 'generate_code' theory section;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15215
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15216
* HOL: canonical cases/induct rules for n-tuples (n = 3..7);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15217
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15218
* HOL: consolidated and renamed several theories.  In particular:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15219
        Ord.thy has been absorbed into HOL.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15220
        String.thy has been absorbed into List.thy
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15221
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15222
* HOL: concrete setsum syntax "\<Sum>i:A. b" == "setsum (%i. b) A"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15223
(beware of argument permutation!);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15224
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15225
* HOL: linorder_less_split superseded by linorder_cases;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15226
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15227
* HOL/List: "nodups" renamed to "distinct";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15228
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15229
* HOL: added "The" definite description operator; move Hilbert's "Eps"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15230
to peripheral theory "Hilbert_Choice"; some INCOMPATIBILITIES:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15231
  - Ex_def has changed, now need to use some_eq_ex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15232
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15233
* HOL: made split_all_tac safe; EXISTING PROOFS MAY FAIL OR LOOP, so
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15234
in this (rare) case use:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15235
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15236
  delSWrapper "split_all_tac"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15237
  addSbefore ("unsafe_split_all_tac", unsafe_split_all_tac)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15238
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15239
* HOL: added safe wrapper "split_conv_tac" to claset; EXISTING PROOFS
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15240
MAY FAIL;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15241
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15242
* HOL: introduced f^n = f o ... o f; warning: due to the limits of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15243
Isabelle's type classes, ^ on functions and relations has too general
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15244
a domain, namely ('a * 'b) set and 'a => 'b; this means that it may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15245
necessary to attach explicit type constraints;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15246
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15247
* HOL/Relation: the prefix name of the infix "O" has been changed from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15248
"comp" to "rel_comp"; INCOMPATIBILITY: a few theorems have been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15249
renamed accordingly (eg "compI" -> "rel_compI").
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15250
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15251
* HOL: syntax translations now work properly with numerals and records
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15252
expressions;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15253
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15254
* HOL: bounded abstraction now uses syntax "%" / "\<lambda>" instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15255
of "lam" -- INCOMPATIBILITY;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15256
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15257
* HOL: got rid of some global declarations (potential INCOMPATIBILITY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15258
for ML tools): const "()" renamed "Product_Type.Unity", type "unit"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15259
renamed "Product_Type.unit";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15260
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15261
* HOL: renamed rtrancl_into_rtrancl2 to converse_rtrancl_into_rtrancl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15262
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15263
* HOL: removed obsolete theorem "optionE" (use "option.exhaust", or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15264
the "cases" method);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15265
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15266
* HOL/GroupTheory: group theory examples including Sylow's theorem (by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15267
Florian Kammller);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15268
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15269
* HOL/IMP: updated and converted to new-style theory format; several
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15270
parts turned into readable document, with proper Isar proof texts and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15271
some explanations (by Gerwin Klein);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15272
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15273
* HOL-Real: added Complex_Numbers (by Gertrud Bauer);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15274
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15275
* HOL-Hyperreal is now a logic image;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15276
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15277
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15278
*** HOLCF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15279
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15280
* Isar: consts/constdefs supports mixfix syntax for continuous
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15281
operations;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15282
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15283
* Isar: domain package adapted to new-style theory format, e.g. see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15284
HOLCF/ex/Dnat.thy;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15285
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15286
* theory Lift: proper use of rep_datatype lift instead of ML hacks --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15287
potential INCOMPATIBILITY; now use plain induct_tac instead of former
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15288
lift.induct_tac, always use UU instead of Undef;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15289
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15290
* HOLCF/IMP: updated and converted to new-style theory;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15291
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15292
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15293
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15294
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15295
* Isar: proper integration of logic-specific tools and packages,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15296
including theory commands '(co)inductive', '(co)datatype',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15297
'rep_datatype', 'inductive_cases', as well as methods 'ind_cases',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15298
'induct_tac', 'case_tac', and 'typecheck' (with attribute 'TC');
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15299
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15300
* theory Main no longer includes AC; for the Axiom of Choice, base
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15301
your theory on Main_ZFC;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15302
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15303
* the integer library now covers quotients and remainders, with many
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15304
laws relating division to addition, multiplication, etc.;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15305
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15306
* ZF/UNITY: Chandy and Misra's UNITY is now available in ZF, giving a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15307
typeless version of the formalism;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15308
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15309
* ZF/AC, Coind, IMP, Resid: updated and converted to new-style theory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15310
format;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15311
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15312
* ZF/Induct: new directory for examples of inductive definitions,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15313
including theory Multiset for multiset orderings; converted to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15314
new-style theory format;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15315
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15316
* ZF: many new theorems about lists, ordinals, etc.;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15317
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15318
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15319
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15320
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15321
* Pure/kernel: meta-level proof terms (by Stefan Berghofer); reference
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15322
variable proof controls level of detail: 0 = no proofs (only oracle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15323
dependencies), 1 = lemma dependencies, 2 = compact proof terms; see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15324
also ref manual for further ML interfaces;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15325
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15326
* Pure/axclass: removed obsolete ML interface
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15327
goal_subclass/goal_arity;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15328
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15329
* Pure/syntax: new token syntax "num" for plain numerals (without "#"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15330
of "xnum"); potential INCOMPATIBILITY, since -0, -1 etc. are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15331
separate tokens, so expressions involving minus need to be spaced
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15332
properly;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15333
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15334
* Pure/syntax: support non-oriented infixes, using keyword "infix"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15335
rather than "infixl" or "infixr";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15336
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15337
* Pure/syntax: concrete syntax for dummy type variables admits genuine
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15338
sort constraint specifications in type inference; e.g. "x::_::foo"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15339
ensures that the type of "x" is of sort "foo" (but not necessarily a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15340
type variable);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15341
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15342
* Pure/syntax: print modes "type_brackets" and "no_type_brackets"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15343
control output of nested => (types); the default behavior is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15344
"type_brackets";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15345
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15346
* Pure/syntax: builtin parse translation for "_constify" turns valued
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15347
tokens into AST constants;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15348
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15349
* Pure/syntax: prefer later declarations of translations and print
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15350
translation functions; potential INCOMPATIBILITY: need to reverse
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15351
multiple declarations for same syntax element constant;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15352
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15353
* Pure/show_hyps reset by default (in accordance to existing Isar
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15354
practice);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15355
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15356
* Provers/classical: renamed addaltern to addafter, addSaltern to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15357
addSafter;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15358
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15359
* Provers/clasimp: ``iff'' declarations now handle conditional rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15360
as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15361
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15362
* system: tested support for MacOS X; should be able to get Isabelle +
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15363
Proof General to work in a plain Terminal after installing Poly/ML
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15364
(e.g. from the Isabelle distribution area) and GNU bash alone
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15365
(e.g. from http://www.apple.com); full X11, XEmacs and X-Symbol
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15366
support requires further installations, e.g. from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15367
http://fink.sourceforge.net/);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15368
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15369
* system: support Poly/ML 4.1.1 (able to manage larger heaps);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15370
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15371
* system: reduced base memory usage by Poly/ML (approx. 20 MB instead
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15372
of 40 MB), cf. ML_OPTIONS;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15373
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15374
* system: Proof General keywords specification is now part of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15375
Isabelle distribution (see etc/isar-keywords.el);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15376
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15377
* system: support for persistent Proof General sessions (refrain from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15378
outdating all loaded theories on startup); user may create writable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15379
logic images like this: ``isabelle -q HOL Test'';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15380
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15381
* system: smart selection of Isabelle process versus Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15382
interface, accommodates case-insensitive file systems (e.g. HFS+); may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15383
run both "isabelle" and "Isabelle" even if file names are badly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15384
damaged (executable inspects the case of the first letter of its own
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15385
name); added separate "isabelle-process" and "isabelle-interface";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15386
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15387
* system: refrain from any attempt at filtering input streams; no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15388
longer support ``8bit'' encoding of old isabelle font, instead proper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15389
iso-latin characters may now be used; the related isatools
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15390
"symbolinput" and "nonascii" have disappeared as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15391
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15392
* system: removed old "xterm" interface (the print modes "xterm" and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15393
"xterm_color" are still available for direct use in a suitable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15394
terminal);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15395
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15396
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15397
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15398
New in Isabelle99-2 (February 2001)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15399
-----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15400
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15401
*** Overview of INCOMPATIBILITIES ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15402
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15403
* HOL: please note that theories in the Library and elsewhere often use the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15404
new-style (Isar) format; to refer to their theorems in an ML script you must
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15405
bind them to ML identifers by e.g.      val thm_name = thm "thm_name";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15406
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15407
* HOL: inductive package no longer splits induction rule aggressively,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15408
but only as far as specified by the introductions given; the old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15409
format may be recovered via ML function complete_split_rule or attribute
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15410
'split_rule (complete)';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15411
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15412
* HOL: induct renamed to lfp_induct, lfp_Tarski to lfp_unfold,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15413
gfp_Tarski to gfp_unfold;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15414
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15415
* HOL: contrapos, contrapos2 renamed to contrapos_nn, contrapos_pp;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15416
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15417
* HOL: infix "dvd" now has priority 50 rather than 70 (because it is a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15418
relation); infix "^^" has been renamed "``"; infix "``" has been
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15419
renamed "`"; "univalent" has been renamed "single_valued";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15420
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15421
* HOL/Real: "rinv" and "hrinv" replaced by overloaded "inverse"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15422
operation;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15423
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15424
* HOLCF: infix "`" has been renamed "$"; the symbol syntax is \<cdot>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15425
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15426
* Isar: 'obtain' no longer declares "that" fact as simp/intro;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15427
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15428
* Isar/HOL: method 'induct' now handles non-atomic goals; as a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15429
consequence, it is no longer monotonic wrt. the local goal context
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15430
(which is now passed through the inductive cases);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15431
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15432
* Document preparation: renamed standard symbols \<ll> to \<lless> and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15433
\<gg> to \<ggreater>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15434
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15435
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15436
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15437
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15438
* \isabellestyle{NAME} selects version of Isabelle output (currently
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15439
available: are "it" for near math-mode best-style output, "sl" for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15440
slanted text style, and "tt" for plain type-writer; if no
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15441
\isabellestyle command is given, output is according to slanted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15442
type-writer);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15443
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15444
* support sub/super scripts (for single symbols only), input syntax is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15445
like this: "A\<^sup>*" or "A\<^sup>\<star>";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15446
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15447
* some more standard symbols; see Appendix A of the system manual for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15448
the complete list of symbols defined in isabellesym.sty;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15449
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15450
* improved isabelle style files; more abstract symbol implementation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15451
(should now use \isamath{...} and \isatext{...} in custom symbol
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15452
definitions);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15453
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15454
* antiquotation @{goals} and @{subgoals} for output of *dynamic* goals
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15455
state; Note that presentation of goal states does not conform to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15456
actual human-readable proof documents.  Please do not include goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15457
states into document output unless you really know what you are doing!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15458
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15459
* proper indentation of antiquoted output with proportional LaTeX
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15460
fonts;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15461
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15462
* no_document ML operator temporarily disables LaTeX document
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15463
generation;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15464
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15465
* isatool unsymbolize tunes sources for plain ASCII communication;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15466
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15467
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15468
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15469
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15470
* Pure: Isar now suffers initial goal statements to contain unbound
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15471
schematic variables (this does not conform to actual readable proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15472
documents, due to unpredictable outcome and non-compositional proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15473
checking); users who know what they are doing may use schematic goals
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15474
for Prolog-style synthesis of proven results;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15475
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15476
* Pure: assumption method (an implicit finishing) now handles actual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15477
rules as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15478
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15479
* Pure: improved 'obtain' --- moved to Pure, insert "that" into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15480
initial goal, declare "that" only as Pure intro (only for single
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15481
steps); the "that" rule assumption may now be involved in implicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15482
finishing, thus ".." becomes a feasible for trivial obtains;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15483
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15484
* Pure: default proof step now includes 'intro_classes'; thus trivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15485
instance proofs may be performed by "..";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15486
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15487
* Pure: ?thesis / ?this / "..." now work for pure meta-level
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15488
statements as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15489
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15490
* Pure: more robust selection of calculational rules;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15491
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15492
* Pure: the builtin notion of 'finished' goal now includes the ==-refl
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15493
rule (as well as the assumption rule);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15494
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15495
* Pure: 'thm_deps' command visualizes dependencies of theorems and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15496
lemmas, using the graph browser tool;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15497
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15498
* Pure: predict failure of "show" in interactive mode;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15499
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15500
* Pure: 'thms_containing' now takes actual terms as arguments;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15501
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15502
* HOL: improved method 'induct' --- now handles non-atomic goals
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15503
(potential INCOMPATIBILITY); tuned error handling;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15504
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15505
* HOL: cases and induct rules now provide explicit hints about the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15506
number of facts to be consumed (0 for "type" and 1 for "set" rules);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15507
any remaining facts are inserted into the goal verbatim;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15508
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15509
* HOL: local contexts (aka cases) may now contain term bindings as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15510
well; the 'cases' and 'induct' methods new provide a ?case binding for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15511
the result to be shown in each case;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15512
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15513
* HOL: added 'recdef_tc' command;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15514
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15515
* isatool convert assists in eliminating legacy ML scripts;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15516
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15517
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15518
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15519
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15520
* HOL/Library: a collection of generic theories to be used together
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15521
with main HOL; the theory loader path already includes this directory
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15522
by default; the following existing theories have been moved here:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15523
HOL/Induct/Multiset, HOL/Induct/Acc (as Accessible_Part), HOL/While
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15524
(as While_Combinator), HOL/Lex/Prefix (as List_Prefix);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15525
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15526
* HOL/Unix: "Some aspects of Unix file-system security", a typical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15527
modelling and verification task performed in Isabelle/HOL +
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15528
Isabelle/Isar + Isabelle document preparation (by Markus Wenzel).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15529
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15530
* HOL/Algebra: special summation operator SUM no longer exists, it has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15531
been replaced by setsum; infix 'assoc' now has priority 50 (like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15532
'dvd'); axiom 'one_not_zero' has been moved from axclass 'ring' to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15533
'domain', this makes the theory consistent with mathematical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15534
literature;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15535
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15536
* HOL basics: added overloaded operations "inverse" and "divide"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15537
(infix "/"), syntax for generic "abs" operation, generic summation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15538
operator \<Sum>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15539
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15540
* HOL/typedef: simplified package, provide more useful rules (see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15541
HOL/subset.thy);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15542
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15543
* HOL/datatype: induction rule for arbitrarily branching datatypes is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15544
now expressed as a proper nested rule (old-style tactic scripts may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15545
require atomize_strip_tac to cope with non-atomic premises);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15546
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15547
* HOL: renamed theory "Prod" to "Product_Type", renamed "split" rule
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15548
to "split_conv" (old name still available for compatibility);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15549
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15550
* HOL: improved concrete syntax for strings (e.g. allows translation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15551
rules with string literals);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15552
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15553
* HOL-Real-Hyperreal: this extends HOL-Real with the hyperreals
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15554
 and Fleuriot's mechanization of analysis, including the transcendental
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15555
 functions for the reals;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15556
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15557
* HOL/Real, HOL/Hyperreal: improved arithmetic simplification;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15558
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15559
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15560
*** CTT ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15561
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15562
* CTT: x-symbol support for Pi, Sigma, -->, : (membership); note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15563
"lam" is displayed as TWO lambda-symbols
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15564
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15565
* CTT: theory Main now available, containing everything (that is, Bool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15566
and Arith);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15567
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15568
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15569
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15570
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15571
* Pure: the Simplifier has been implemented properly as a derived rule
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15572
outside of the actual kernel (at last!); the overall performance
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15573
penalty in practical applications is about 50%, while reliability of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15574
the Isabelle inference kernel has been greatly improved;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15575
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15576
* print modes "brackets" and "no_brackets" control output of nested =>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15577
(types) and ==> (props); the default behaviour is "brackets";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15578
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15579
* Provers: fast_tac (and friends) now handle actual object-logic rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15580
as assumptions as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15581
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15582
* system: support Poly/ML 4.0;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15583
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15584
* system: isatool install handles KDE version 1 or 2;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15585
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15586
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15587
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15588
New in Isabelle99-1 (October 2000)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15589
----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15590
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15591
*** Overview of INCOMPATIBILITIES ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15592
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15593
* HOL: simplification of natural numbers is much changed; to partly
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15594
recover the old behaviour (e.g. to prevent n+n rewriting to #2*n)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15595
issue the following ML commands:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15596
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15597
  Delsimprocs Nat_Numeral_Simprocs.cancel_numerals;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15598
  Delsimprocs [Nat_Numeral_Simprocs.combine_numerals];
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15599
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15600
* HOL: simplification no longer dives into case-expressions; this is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15601
controlled by "t.weak_case_cong" for each datatype t;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15602
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15603
* HOL: nat_less_induct renamed to less_induct;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15604
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15605
* HOL: systematic renaming of the SOME (Eps) rules, may use isatool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15606
fixsome to patch .thy and .ML sources automatically;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15607
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15608
  select_equality  -> some_equality
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15609
  select_eq_Ex     -> some_eq_ex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15610
  selectI2EX       -> someI2_ex
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15611
  selectI2         -> someI2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15612
  selectI          -> someI
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15613
  select1_equality -> some1_equality
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15614
  Eps_sym_eq       -> some_sym_eq_trivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15615
  Eps_eq           -> some_eq_trivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15616
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15617
* HOL: exhaust_tac on datatypes superceded by new generic case_tac;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15618
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15619
* HOL: removed obsolete theorem binding expand_if (refer to split_if
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15620
instead);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15621
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15622
* HOL: the recursion equations generated by 'recdef' are now called
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15623
f.simps instead of f.rules;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15624
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15625
* HOL: qed_spec_mp now also handles bounded ALL as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15626
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15627
* HOL: 0 is now overloaded, so the type constraint ":: nat" may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15628
sometimes be needed;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15629
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15630
* HOL: the constant for "f``x" is now "image" rather than "op ``";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15631
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15632
* HOL: the constant for "f-``x" is now "vimage" rather than "op -``";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15633
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15634
* HOL: the disjoint sum is now "<+>" instead of "Plus"; the cartesian
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15635
product is now "<*>" instead of "Times"; the lexicographic product is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15636
now "<*lex*>" instead of "**";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15637
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15638
* HOL: theory Sexp is now in HOL/Induct examples (it used to be part
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15639
of main HOL, but was unused); better use HOL's datatype package;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15640
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15641
* HOL: removed "symbols" syntax for constant "override" of theory Map;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15642
the old syntax may be recovered as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15643
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15644
  syntax (symbols)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15645
    override  :: "('a ~=> 'b) => ('a ~=> 'b) => ('a ~=> 'b)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15646
      (infixl "\\<oplus>" 100)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15647
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15648
* HOL/Real: "rabs" replaced by overloaded "abs" function;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15649
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15650
* HOL/ML: even fewer consts are declared as global (see theories Ord,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15651
Lfp, Gfp, WF); this only affects ML packages that refer to const names
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15652
internally;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15653
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15654
* HOL and ZF: syntax for quotienting wrt an equivalence relation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15655
changed from A/r to A//r;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15656
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15657
* ZF: new treatment of arithmetic (nat & int) may break some old
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15658
proofs;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15659
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15660
* Isar: renamed some attributes (RS -> THEN, simplify -> simplified,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15661
rulify -> rule_format, elimify -> elim_format, ...);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15662
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15663
* Isar/Provers: intro/elim/dest attributes changed; renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15664
intro/intro!/intro!! flags to intro!/intro/intro? (in most cases, one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15665
should have to change intro!! to intro? only); replaced "delrule" by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15666
"rule del";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15667
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15668
* Isar/HOL: renamed "intrs" to "intros" in inductive definitions;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15669
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15670
* Provers: strengthened force_tac by using new first_best_tac;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15671
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15672
* LaTeX document preparation: several changes of isabelle.sty (see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15673
lib/texinputs);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15674
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15675
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15676
*** Document preparation ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15677
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15678
* formal comments (text blocks etc.) in new-style theories may now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15679
contain antiquotations of thm/prop/term/typ/text to be presented
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15680
according to latex print mode; concrete syntax is like this:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15681
@{term[show_types] "f(x) = a + x"};
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15682
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15683
* isatool mkdir provides easy setup of Isabelle session directories,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15684
including proper document sources;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15685
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15686
* generated LaTeX sources are now deleted after successful run
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15687
(isatool document -c); may retain a copy somewhere else via -D option
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15688
of isatool usedir;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15689
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15690
* isatool usedir -D now lets isatool latex -o sty update the Isabelle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15691
style files, achieving self-contained LaTeX sources and simplifying
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15692
LaTeX debugging;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15693
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15694
* old-style theories now produce (crude) LaTeX output as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15695
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15696
* browser info session directories are now self-contained (may be put
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15697
on WWW server seperately); improved graphs of nested sessions; removed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15698
graph for 'all sessions';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15699
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15700
* several improvements in isabelle style files; \isabellestyle{it}
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15701
produces fake math mode output; \isamarkupheader is now \section by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15702
default; see lib/texinputs/isabelle.sty etc.;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15703
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15704
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15705
*** Isar ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15706
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15707
* Isar/Pure: local results and corresponding term bindings are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15708
subject to Hindley-Milner polymorphism (similar to ML); this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15709
accommodates incremental type-inference very nicely;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15710
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15711
* Isar/Pure: new derived language element 'obtain' supports
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15712
generalized existence reasoning;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15713
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15714
* Isar/Pure: new calculational elements 'moreover' and 'ultimately'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15715
support accumulation of results, without applying any rules yet;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15716
useful to collect intermediate results without explicit name
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15717
references, and for use with transitivity rules with more than 2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15718
premises;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15719
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15720
* Isar/Pure: scalable support for case-analysis type proofs: new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15721
'case' language element refers to local contexts symbolically, as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15722
produced by certain proof methods; internally, case names are attached
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15723
to theorems as "tags";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15724
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15725
* Isar/Pure: theory command 'hide' removes declarations from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15726
class/type/const name spaces;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15727
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15728
* Isar/Pure: theory command 'defs' supports option "(overloaded)" to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15729
indicate potential overloading;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15730
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15731
* Isar/Pure: changed syntax of local blocks from {{ }} to { };
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15732
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15733
* Isar/Pure: syntax of sorts made 'inner', i.e. have to write
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15734
"{a,b,c}" instead of {a,b,c};
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15735
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15736
* Isar/Pure now provides its own version of intro/elim/dest
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15737
attributes; useful for building new logics, but beware of confusion
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15738
with the version in Provers/classical;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15739
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15740
* Isar/Pure: the local context of (non-atomic) goals is provided via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15741
case name 'antecedent';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15742
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15743
* Isar/Pure: removed obsolete 'transfer' attribute (transfer of thms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15744
to the current context is now done automatically);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15745
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15746
* Isar/Pure: theory command 'method_setup' provides a simple interface
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15747
for definining proof methods in ML;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15748
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15749
* Isar/Provers: intro/elim/dest attributes changed; renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15750
intro/intro!/intro!! flags to intro!/intro/intro? (INCOMPATIBILITY, in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15751
most cases, one should have to change intro!! to intro? only);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15752
replaced "delrule" by "rule del";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15753
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15754
* Isar/Provers: new 'hypsubst' method, plain 'subst' method and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15755
'symmetric' attribute (the latter supercedes [RS sym]);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15756
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15757
* Isar/Provers: splitter support (via 'split' attribute and 'simp'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15758
method modifier); 'simp' method: 'only:' modifier removes loopers as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15759
well (including splits);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15760
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15761
* Isar/Provers: Simplifier and Classical methods now support all kind
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15762
of modifiers used in the past, including 'cong', 'iff', etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15763
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15764
* Isar/Provers: added 'fastsimp' and 'clarsimp' methods (combination
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15765
of Simplifier and Classical reasoner);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15766
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15767
* Isar/HOL: new proof method 'cases' and improved version of 'induct'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15768
now support named cases; major packages (inductive, datatype, primrec,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15769
recdef) support case names and properly name parameters;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15770
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15771
* Isar/HOL: new transitivity rules for substitution in inequalities --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15772
monotonicity conditions are extracted to be proven at end of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15773
calculations;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15774
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15775
* Isar/HOL: removed 'case_split' thm binding, should use 'cases' proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15776
method anyway;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15777
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15778
* Isar/HOL: removed old expand_if = split_if; theorems if_splits =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15779
split_if split_if_asm; datatype package provides theorems foo.splits =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15780
foo.split foo.split_asm for each datatype;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15781
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15782
* Isar/HOL: tuned inductive package, rename "intrs" to "intros"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15783
(potential INCOMPATIBILITY), emulation of mk_cases feature for proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15784
scripts: new 'inductive_cases' command and 'ind_cases' method; (Note:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15785
use "(cases (simplified))" method in proper proof texts);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15786
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15787
* Isar/HOL: added global 'arith_split' attribute for 'arith' method;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15788
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15789
* Isar: names of theorems etc. may be natural numbers as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15790
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15791
* Isar: 'pr' command: optional arguments for goals_limit and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15792
ProofContext.prems_limit; no longer prints theory contexts, but only
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15793
proof states;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15794
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15795
* Isar: diagnostic commands 'pr', 'thm', 'prop', 'term', 'typ' admit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15796
additional print modes to be specified; e.g. "pr(latex)" will print
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15797
proof state according to the Isabelle LaTeX style;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15798
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15799
* Isar: improved support for emulating tactic scripts, including proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15800
methods 'rule_tac' etc., 'cut_tac', 'thin_tac', 'subgoal_tac',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15801
'rename_tac', 'rotate_tac', 'tactic', and 'case_tac' / 'induct_tac'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15802
(for HOL datatypes);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15803
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15804
* Isar: simplified (more robust) goal selection of proof methods: 1st
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15805
goal, all goals, or explicit goal specifier (tactic emulation); thus
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15806
'proof method scripts' have to be in depth-first order;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15807
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15808
* Isar: tuned 'let' syntax: replaced 'as' keyword by 'and';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15809
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15810
* Isar: removed 'help' command, which hasn't been too helpful anyway;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15811
should instead use individual commands for printing items
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15812
(print_commands, print_methods etc.);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15813
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15814
* Isar: added 'nothing' --- the empty list of theorems;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15815
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15816
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15817
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15818
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15819
* HOL/MicroJava: formalization of a fragment of Java, together with a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15820
corresponding virtual machine and a specification of its bytecode
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15821
verifier and a lightweight bytecode verifier, including proofs of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15822
type-safety; by Gerwin Klein, Tobias Nipkow, David von Oheimb, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15823
Cornelia Pusch (see also the homepage of project Bali at
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15824
http://isabelle.in.tum.de/Bali/);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15825
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15826
* HOL/Algebra: new theory of rings and univariate polynomials, by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15827
Clemens Ballarin;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15828
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15829
* HOL/NumberTheory: fundamental Theorem of Arithmetic, Chinese
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15830
Remainder Theorem, Fermat/Euler Theorem, Wilson's Theorem, by Thomas M
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15831
Rasmussen;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15832
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15833
* HOL/Lattice: fundamental concepts of lattice theory and order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15834
structures, including duals, properties of bounds versus algebraic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15835
laws, lattice operations versus set-theoretic ones, the Knaster-Tarski
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15836
Theorem for complete lattices etc.; may also serve as a demonstration
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15837
for abstract algebraic reasoning using axiomatic type classes, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15838
mathematics-style proof in Isabelle/Isar; by Markus Wenzel;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15839
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15840
* HOL/Prolog: a (bare-bones) implementation of Lambda-Prolog, by David
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15841
von Oheimb;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15842
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15843
* HOL/IMPP: extension of IMP with local variables and mutually
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15844
recursive procedures, by David von Oheimb;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15845
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15846
* HOL/Lambda: converted into new-style theory and document;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15847
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15848
* HOL/ex/Multiquote: example of multiple nested quotations and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15849
anti-quotations -- basically a generalized version of de-Bruijn
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15850
representation; very useful in avoiding lifting of operations;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15851
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15852
* HOL/record: added general record equality rule to simpset; fixed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15853
select-update simplification procedure to handle extended records as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15854
well; admit "r" as field name;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15855
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15856
* HOL: 0 is now overloaded over the new sort "zero", allowing its use with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15857
other numeric types and also as the identity of groups, rings, etc.;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15858
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15859
* HOL: new axclass plus_ac0 for addition with the AC-laws and 0 as identity.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15860
Types nat and int belong to this axclass;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15861
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15862
* HOL: greatly improved simplification involving numerals of type nat, int, real:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15863
   (i + #8 + j) = Suc k simplifies to  #7 + (i + j) = k
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15864
   i*j + k + j*#3*i     simplifies to  #4*(i*j) + k
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15865
  two terms #m*u and #n*u are replaced by #(m+n)*u
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15866
    (where #m, #n and u can implicitly be 1; this is simproc combine_numerals)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15867
  and the term/formula #m*u+x ~~ #n*u+y simplifies simplifies to #(m-n)+x ~~ y
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15868
    or x ~~ #(n-m)+y, where ~~ is one of = < <= or - (simproc cancel_numerals);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15869
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15870
* HOL: meson_tac is available (previously in ex/meson.ML); it is a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15871
powerful prover for predicate logic but knows nothing of clasets; see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15872
ex/mesontest.ML and ex/mesontest2.ML for example applications;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15873
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15874
* HOL: new version of "case_tac" subsumes both boolean case split and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15875
"exhaust_tac" on datatypes; INCOMPATIBILITY: exhaust_tac no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15876
exists, may define val exhaust_tac = case_tac for ad-hoc portability;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15877
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15878
* HOL: simplification no longer dives into case-expressions: only the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15879
selector expression is simplified, but not the remaining arms; to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15880
enable full simplification of case-expressions for datatype t, you may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15881
remove t.weak_case_cong from the simpset, either globally (Delcongs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15882
[thm"t.weak_case_cong"];) or locally (delcongs [...]).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15883
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15884
* HOL/recdef: the recursion equations generated by 'recdef' for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15885
function 'f' are now called f.simps instead of f.rules; if all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15886
termination conditions are proved automatically, these simplification
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15887
rules are added to the simpset, as in primrec; rules may be named
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15888
individually as well, resulting in a separate list of theorems for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15889
each equation;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15890
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15891
* HOL/While is a new theory that provides a while-combinator. It
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15892
permits the definition of tail-recursive functions without the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15893
provision of a termination measure. The latter is necessary once the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15894
invariant proof rule for while is applied.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15895
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15896
* HOL: new (overloaded) notation for the set of elements below/above
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15897
some element: {..u}, {..u(}, {l..}, {)l..}. See theory SetInterval.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15899
* HOL: theorems impI, allI, ballI bound as "strip";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15900
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15901
* HOL: new tactic induct_thm_tac: thm -> string -> int -> tactic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15902
induct_tac th "x1 ... xn" expects th to have a conclusion of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15903
P v1 ... vn and abbreviates res_inst_tac [("v1","x1"),...,("vn","xn")] th;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15904
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15905
* HOL/Real: "rabs" replaced by overloaded "abs" function;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15906
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15907
* HOL: theory Sexp now in HOL/Induct examples (it used to be part of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15908
main HOL, but was unused);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15909
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15910
* HOL: fewer consts declared as global (e.g. have to refer to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15911
"Lfp.lfp" instead of "lfp" internally; affects ML packages only);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15912
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15913
* HOL: tuned AST representation of nested pairs, avoiding bogus output
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15914
in case of overlap with user translations (e.g. judgements over
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15915
tuples); (note that the underlying logical represenation is still
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15916
bogus);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15917
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15918
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15919
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15920
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15921
* ZF: simplification automatically cancels common terms in arithmetic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15922
expressions over nat and int;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15923
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15924
* ZF: new treatment of nat to minimize type-checking: all operators
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15925
coerce their operands to a natural number using the function natify,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15926
making the algebraic laws unconditional;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15927
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15928
* ZF: as above, for int: operators coerce their operands to an integer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15929
using the function intify;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15930
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15931
* ZF: the integer library now contains many of the usual laws for the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15932
orderings, including $<=, and monotonicity laws for $+ and $*;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15933
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15934
* ZF: new example ZF/ex/NatSum to demonstrate integer arithmetic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15935
simplification;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15936
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15937
* FOL and ZF: AddIffs now available, giving theorems of the form P<->Q
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15938
to the simplifier and classical reasoner simultaneously;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15939
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15940
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15941
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15942
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15943
* Provers: blast_tac now handles actual object-logic rules as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15944
assumptions; note that auto_tac uses blast_tac internally as well;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15945
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15946
* Provers: new functions rulify/rulify_no_asm: thm -> thm for turning
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15947
outer -->/All/Ball into ==>/!!; qed_spec_mp now uses rulify_no_asm;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15948
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15949
* Provers: delrules now handles destruct rules as well (no longer need
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15950
explicit make_elim);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15951
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15952
* Provers: Blast_tac now warns of and ignores "weak elimination rules" e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15953
  [| inj ?f;          ?f ?x = ?f ?y; ?x = ?y ==> ?W |] ==> ?W
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15954
use instead the strong form,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15955
  [| inj ?f; ~ ?W ==> ?f ?x = ?f ?y; ?x = ?y ==> ?W |] ==> ?W
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15956
in HOL, FOL and ZF the function cla_make_elim will create such rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15957
from destruct-rules;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15958
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15959
* Provers: Simplifier.easy_setup provides a fast path to basic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15960
Simplifier setup for new object-logics;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15961
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15962
* Pure: AST translation rules no longer require constant head on LHS;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15963
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15964
* Pure: improved name spaces: ambiguous output is qualified; support
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15965
for hiding of names;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15966
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15967
* system: smart setup of canonical ML_HOME, ISABELLE_INTERFACE, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15968
XSYMBOL_HOME; no longer need to do manual configuration in most
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15969
situations;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15970
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15971
* system: compression of ML heaps images may now be controlled via -c
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15972
option of isabelle and isatool usedir (currently only observed by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15973
Poly/ML);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15974
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15975
* system: isatool installfonts may handle X-Symbol fonts as well (very
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15976
useful for remote X11);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15977
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15978
* system: provide TAGS file for Isabelle sources;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15979
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15980
* ML: infix 'OF' is a version of 'MRS' with more appropriate argument
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15981
order;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15982
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15983
* ML: renamed flags Syntax.trace_norm_ast to Syntax.trace_ast; global
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15984
timing flag supersedes proof_timing and Toplevel.trace;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15985
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15986
* ML: new combinators |>> and |>>> for incremental transformations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15987
with secondary results (e.g. certain theory extensions):
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15988
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15989
* ML: PureThy.add_defs gets additional argument to indicate potential
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15990
overloading (usually false);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15991
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15992
* ML: PureThy.add_thms/add_axioms/add_defs now return theorems as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15993
results;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15994
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15995
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15996
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15997
New in Isabelle99 (October 1999)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15998
--------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 15999
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16000
*** Overview of INCOMPATIBILITIES (see below for more details) ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16001
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16002
* HOL: The THEN and ELSE parts of conditional expressions (if P then x else y)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16003
are no longer simplified.  (This allows the simplifier to unfold recursive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16004
functional programs.)  To restore the old behaviour, declare
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16005
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16006
    Delcongs [if_weak_cong];
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16007
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16008
* HOL: Removed the obsolete syntax "Compl A"; use -A for set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16009
complement;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16010
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16011
* HOL: the predicate "inj" is now defined by translation to "inj_on";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16012
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16013
* HOL/datatype: mutual_induct_tac no longer exists --
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16014
  use induct_tac "x_1 ... x_n" instead of mutual_induct_tac ["x_1", ..., "x_n"]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16015
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16016
* HOL/typedef: fixed type inference for representing set; type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16017
arguments now have to occur explicitly on the rhs as type constraints;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16018
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16019
* ZF: The con_defs part of an inductive definition may no longer refer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16020
to constants declared in the same theory;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16021
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16022
* HOL, ZF: the function mk_cases, generated by the inductive
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16023
definition package, has lost an argument.  To simplify its result, it
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16024
uses the default simpset instead of a supplied list of theorems.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16025
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16026
* HOL/List: the constructors of type list are now Nil and Cons;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16027
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16028
* Simplifier: the type of the infix ML functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16029
        setSSolver addSSolver setSolver addSolver
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16030
is now  simpset * solver -> simpset  where `solver' is a new abstract type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16031
for packaging solvers. A solver is created via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16032
        mk_solver: string -> (thm list -> int -> tactic) -> solver
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16033
where the string argument is only a comment.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16034
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16035
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16036
*** Proof tools ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16037
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16038
* Provers/Arith/fast_lin_arith.ML contains a functor for creating a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16039
decision procedure for linear arithmetic. Currently it is used for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16040
types `nat', `int', and `real' in HOL (see below); it can, should and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16041
will be instantiated for other types and logics as well.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16042
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16043
* The simplifier now accepts rewrite rules with flexible heads, eg
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16044
     hom ?f ==> ?f(?x+?y) = ?f ?x + ?f ?y
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16045
  They are applied like any rule with a non-pattern lhs, i.e. by first-order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16046
  matching.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16047
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16049
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16050
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16051
* New Isabelle/Isar subsystem provides an alternative to traditional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16052
tactical theorem proving; together with the ProofGeneral/isar user
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16053
interface it offers an interactive environment for developing human
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16054
readable proof documents (Isar == Intelligible semi-automated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16055
reasoning); for further information see isatool doc isar-ref,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16056
src/HOL/Isar_examples and http://isabelle.in.tum.de/Isar/
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16057
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16058
* improved and simplified presentation of theories: better HTML markup
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16059
(including colors), graph views in several sizes; isatool usedir now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16060
provides a proper interface for user theories (via -P option); actual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16061
document preparation based on (PDF)LaTeX is available as well (for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16062
new-style theories only); see isatool doc system for more information;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16063
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16064
* native support for Proof General, both for classic Isabelle and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16065
Isabelle/Isar;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16066
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16067
* ML function thm_deps visualizes dependencies of theorems and lemmas,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16068
using the graph browser tool;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16069
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16070
* Isabelle manuals now also available as PDF;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16071
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16072
* theory loader rewritten from scratch (may not be fully
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16073
bug-compatible); old loadpath variable has been replaced by show_path,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16074
add_path, del_path, reset_path functions; new operations such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16075
update_thy, touch_thy, remove_thy, use/update_thy_only (see also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16076
isatool doc ref);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16077
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16078
* improved isatool install: option -k creates KDE application icon,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16079
option -p DIR installs standalone binaries;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16080
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16081
* added ML_PLATFORM setting (useful for cross-platform installations);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16082
more robust handling of platform specific ML images for SML/NJ;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16083
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16084
* the settings environment is now statically scoped, i.e. it is never
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16085
created again in sub-processes invoked from isabelle, isatool, or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16086
Isabelle;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16088
* path element specification '~~' refers to '$ISABELLE_HOME';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16089
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16090
* in locales, the "assumes" and "defines" parts may be omitted if
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16091
empty;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16092
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16093
* new print_mode "xsymbols" for extended symbol support (e.g. genuine
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16094
long arrows);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16095
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16096
* new print_mode "HTML";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16097
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16098
* new flag show_tags controls display of tags of theorems (which are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16099
basically just comments that may be attached by some tools);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16100
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16101
* Isamode 2.6 requires patch to accomodate change of Isabelle font
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16102
mode and goal output format:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16103
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16104
diff -r Isamode-2.6/elisp/isa-load.el Isamode/elisp/isa-load.el
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16105
244c244
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16106
<       (list (isa-getenv "ISABELLE") "-msymbols" logic-name)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16107
---
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16108
>       (list (isa-getenv "ISABELLE") "-misabelle_font" "-msymbols" logic-name)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16109
diff -r Isabelle-2.6/elisp/isa-proofstate.el Isamode/elisp/isa-proofstate.el
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16110
181c181
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16111
< (defconst proofstate-proofstart-regexp "^Level [0-9]+$"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16112
---
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16113
> (defconst proofstate-proofstart-regexp "^Level [0-9]+"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16114
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16115
* function bind_thms stores lists of theorems (cf. bind_thm);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16116
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16117
* new shorthand tactics ftac, eatac, datac, fatac;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16118
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16119
* qed (and friends) now accept "" as result name; in that case the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16120
theorem is not stored, but proper checks and presentation of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16121
result still apply;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16122
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16123
* theorem database now also indexes constants "Trueprop", "all",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16124
"==>", "=="; thus thms_containing, findI etc. may retrieve more rules;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16125
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16126
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16127
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16128
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16129
** HOL arithmetic **
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16130
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16131
* There are now decision procedures for linear arithmetic over nat and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16132
int:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16133
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16134
1. arith_tac copes with arbitrary formulae involving `=', `<', `<=',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16135
`+', `-', `Suc', `min', `max' and numerical constants; other subterms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16136
are treated as atomic; subformulae not involving type `nat' or `int'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16137
are ignored; quantified subformulae are ignored unless they are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16138
positive universal or negative existential. The tactic has to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16139
invoked by hand and can be a little bit slow. In particular, the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16140
running time is exponential in the number of occurrences of `min' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16141
`max', and `-' on `nat'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16142
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16143
2. fast_arith_tac is a cut-down version of arith_tac: it only takes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16144
(negated) (in)equalities among the premises and the conclusion into
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16145
account (i.e. no compound formulae) and does not know about `min' and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16146
`max', and `-' on `nat'. It is fast and is used automatically by the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16147
simplifier.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16148
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16149
NB: At the moment, these decision procedures do not cope with mixed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16150
nat/int formulae where the two parts interact, such as `m < n ==>
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16151
int(m) < int(n)'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16152
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16153
* HOL/Numeral provides a generic theory of numerals (encoded
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16154
efficiently as bit strings); setup for types nat/int/real is in place;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16155
INCOMPATIBILITY: since numeral syntax is now polymorphic, rather than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16156
int, existing theories and proof scripts may require a few additional
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16157
type constraints;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16158
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16159
* integer division and remainder can now be performed on constant
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16160
arguments;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16161
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16162
* many properties of integer multiplication, division and remainder
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16163
are now available;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16164
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16165
* An interface to the Stanford Validity Checker (SVC) is available through the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16166
tactic svc_tac.  Propositional tautologies and theorems of linear arithmetic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16167
are proved automatically.  SVC must be installed separately, and its results
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16168
must be TAKEN ON TRUST (Isabelle does not check the proofs, but tags any
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16169
invocation of the underlying oracle).  For SVC see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16170
  http://verify.stanford.edu/SVC
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16171
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16172
* IsaMakefile: the HOL-Real target now builds an actual image;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16173
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16174
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16175
** HOL misc **
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16176
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16177
* HOL/Real/HahnBanach: the Hahn-Banach theorem for real vector spaces
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16178
(in Isabelle/Isar) -- by Gertrud Bauer;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16179
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16180
* HOL/BCV: generic model of bytecode verification, i.e. data-flow
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16181
analysis for assembly languages with subtypes;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16182
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16183
* HOL/TLA (Lamport's Temporal Logic of Actions): major reorganization
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16184
-- avoids syntactic ambiguities and treats state, transition, and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16185
temporal levels more uniformly; introduces INCOMPATIBILITIES due to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16186
changed syntax and (many) tactics;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16187
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16188
* HOL/inductive: Now also handles more general introduction rules such
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16189
  as "ALL y. (y, x) : r --> y : acc r ==> x : acc r"; monotonicity
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16190
  theorems are now maintained within the theory (maintained via the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16191
  "mono" attribute);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16192
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16193
* HOL/datatype: Now also handles arbitrarily branching datatypes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16194
  (using function types) such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16195
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16196
  datatype 'a tree = Atom 'a | Branch "nat => 'a tree"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16197
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16198
* HOL/record: record_simproc (part of the default simpset) takes care
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16199
of selectors applied to updated records; record_split_tac is no longer
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16200
part of the default claset; update_defs may now be removed from the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16201
simpset in many cases; COMPATIBILITY: old behavior achieved by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16202
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16203
  claset_ref () := claset() addSWrapper record_split_wrapper;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16204
  Delsimprocs [record_simproc]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16205
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16206
* HOL/typedef: fixed type inference for representing set; type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16207
arguments now have to occur explicitly on the rhs as type constraints;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16208
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16209
* HOL/recdef (TFL): 'congs' syntax now expects comma separated list of theorem
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16210
names rather than an ML expression;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16211
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16212
* HOL/defer_recdef (TFL): like recdef but the well-founded relation can be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16213
supplied later.  Program schemes can be defined, such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16214
    "While B C s = (if B s then While B C (C s) else s)"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16215
where the well-founded relation can be chosen after B and C have been given.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16216
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16217
* HOL/List: the constructors of type list are now Nil and Cons;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16218
INCOMPATIBILITY: while [] and infix # syntax is still there, of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16219
course, ML tools referring to List.list.op # etc. have to be adapted;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16220
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16221
* HOL_quantifiers flag superseded by "HOL" print mode, which is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16222
disabled by default; run isabelle with option -m HOL to get back to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16223
the original Gordon/HOL-style output;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16224
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16225
* HOL/Ord.thy: new bounded quantifier syntax (input only): ALL x<y. P,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16226
ALL x<=y. P, EX x<y. P, EX x<=y. P;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16227
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16228
* HOL basic syntax simplified (more orthogonal): all variants of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16229
All/Ex now support plain / symbolic / HOL notation; plain syntax for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16230
Eps operator is provided as well: "SOME x. P[x]";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16231
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16232
* HOL/Sum.thy: sum_case has been moved to HOL/Datatype;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16233
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16234
* HOL/Univ.thy: infix syntax <*>, <+>, <**>, <+> eliminated and made
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16235
thus available for user theories;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16236
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16237
* HOLCF/IOA/Sequents: renamed 'Cons' to 'Consq' to avoid clash with
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16238
HOL/List; hardly an INCOMPATIBILITY since '>>' syntax is used all the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16239
time;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16240
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16241
* HOL: new tactic smp_tac: int -> int -> tactic, which applies spec
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16242
several times and then mp;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16243
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16244
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16245
*** LK ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16246
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16247
* the notation <<...>> is now available as a notation for sequences of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16248
formulas;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16249
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16250
* the simplifier is now installed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16251
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16252
* the axiom system has been generalized (thanks to Soren Heilmann)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16253
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16254
* the classical reasoner now has a default rule database
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16255
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16256
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16257
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16258
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16259
* new primrec section allows primitive recursive functions to be given
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16260
directly (as in HOL) over datatypes and the natural numbers;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16261
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16262
* new tactics induct_tac and exhaust_tac for induction (or case
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16263
analysis) over datatypes and the natural numbers;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16264
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16265
* the datatype declaration of type T now defines the recursor T_rec;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16266
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16267
* simplification automatically does freeness reasoning for datatype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16268
constructors;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16269
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16270
* automatic type-inference, with AddTCs command to insert new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16271
type-checking rules;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16272
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16273
* datatype introduction rules are now added as Safe Introduction rules
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16274
to the claset;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16275
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16276
* the syntax "if P then x else y" is now available in addition to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16277
if(P,x,y);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16278
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16279
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16280
*** Internal programming interfaces ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16281
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16282
* tuned simplifier trace output; new flag debug_simp;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16283
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16284
* structures Vartab / Termtab (instances of TableFun) offer efficient
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16285
tables indexed by indexname_ord / term_ord (compatible with aconv);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16286
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16287
* AxClass.axclass_tac lost the theory argument;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16288
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16289
* tuned current_goals_markers semantics: begin / end goal avoids
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16290
printing empty lines;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16291
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16292
* removed prs and prs_fn hook, which was broken because it did not
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16293
include \n in its semantics, forcing writeln to add one
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16294
uncoditionally; replaced prs_fn by writeln_fn; consider std_output:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16295
string -> unit if you really want to output text without newline;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16296
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16297
* Symbol.output subject to print mode; INCOMPATIBILITY: defaults to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16298
plain output, interface builders may have to enable 'isabelle_font'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16299
mode to get Isabelle font glyphs as before;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16300
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16301
* refined token_translation interface; INCOMPATIBILITY: output length
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16302
now of type real instead of int;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16303
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16304
* theory loader actions may be traced via new ThyInfo.add_hook
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16305
interface (see src/Pure/Thy/thy_info.ML); example application: keep
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16306
your own database of information attached to *whole* theories -- as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16307
opposed to intra-theory data slots offered via TheoryDataFun;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16308
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16309
* proper handling of dangling sort hypotheses (at last!);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16310
Thm.strip_shyps and Drule.strip_shyps_warning take care of removing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16311
extra sort hypotheses that can be witnessed from the type signature;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16312
the force_strip_shyps flag is gone, any remaining shyps are simply
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16313
left in the theorem (with a warning issued by strip_shyps_warning);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16314
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16315
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16316
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16317
New in Isabelle98-1 (October 1998)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16318
----------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16319
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16320
*** Overview of INCOMPATIBILITIES (see below for more details) ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16321
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16322
* several changes of automated proof tools;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16323
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16324
* HOL: major changes to the inductive and datatype packages, including
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16325
some minor incompatibilities of theory syntax;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16326
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16327
* HOL: renamed r^-1 to 'converse' from 'inverse'; 'inj_onto' is now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16328
called `inj_on';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16329
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16330
* HOL: removed duplicate thms in Arith:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16331
  less_imp_add_less  should be replaced by  trans_less_add1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16332
  le_imp_add_le      should be replaced by  trans_le_add1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16333
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16334
* HOL: unary minus is now overloaded (new type constraints may be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16335
required);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16336
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16337
* HOL and ZF: unary minus for integers is now #- instead of #~.  In
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16338
ZF, expressions such as n#-1 must be changed to n#- 1, since #-1 is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16339
now taken as an integer constant.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16340
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16341
* Pure: ML function 'theory_of' renamed to 'theory';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16342
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16343
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16344
*** Proof tools ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16345
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16346
* Simplifier:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16347
  1. Asm_full_simp_tac is now more aggressive.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16348
     1. It will sometimes reorient premises if that increases their power to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16349
        simplify.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16350
     2. It does no longer proceed strictly from left to right but may also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16351
        rotate premises to achieve further simplification.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16352
     For compatibility reasons there is now Asm_lr_simp_tac which is like the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16353
     old Asm_full_simp_tac in that it does not rotate premises.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16354
  2. The simplifier now knows a little bit about nat-arithmetic.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16355
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16356
* Classical reasoner: wrapper mechanism for the classical reasoner now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16357
allows for selected deletion of wrappers, by introduction of names for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16358
wrapper functionals.  This implies that addbefore, addSbefore,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16359
addaltern, and addSaltern now take a pair (name, tactic) as argument,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16360
and that adding two tactics with the same name overwrites the first
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16361
one (emitting a warning).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16362
  type wrapper = (int -> tactic) -> (int -> tactic)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16363
  setWrapper, setSWrapper, compWrapper and compSWrapper are replaced by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16364
  addWrapper, addSWrapper: claset * (string * wrapper) -> claset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16365
  delWrapper, delSWrapper: claset *  string            -> claset
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16366
  getWrapper is renamed to appWrappers, getSWrapper to appSWrappers;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16367
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16368
* Classical reasoner: addbefore/addSbefore now have APPEND/ORELSE
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16369
semantics; addbefore now affects only the unsafe part of step_tac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16370
etc.; this affects addss/auto_tac/force_tac, so EXISTING PROOFS MAY
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16371
FAIL, but proofs should be fixable easily, e.g. by replacing Auto_tac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16372
by Force_tac;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16373
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16374
* Classical reasoner: setwrapper to setWrapper and compwrapper to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16375
compWrapper; added safe wrapper (and access functions for it);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16376
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16377
* HOL/split_all_tac is now much faster and fails if there is nothing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16378
to split.  Some EXISTING PROOFS MAY REQUIRE ADAPTION because the order
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16379
and the names of the automatically generated variables have changed.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16380
split_all_tac has moved within claset() from unsafe wrappers to safe
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16381
wrappers, which means that !!-bound variables are split much more
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16382
aggressively, and safe_tac and clarify_tac now split such variables.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16383
If this splitting is not appropriate, use delSWrapper "split_all_tac".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16384
Note: the same holds for record_split_tac, which does the job of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16385
split_all_tac for record fields.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16386
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16387
* HOL/Simplifier: Rewrite rules for case distinctions can now be added
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16388
permanently to the default simpset using Addsplits just like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16389
Addsimps. They can be removed via Delsplits just like
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16390
Delsimps. Lower-case versions are also available.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16391
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16392
* HOL/Simplifier: The rule split_if is now part of the default
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16393
simpset. This means that the simplifier will eliminate all occurrences
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16394
of if-then-else in the conclusion of a goal. To prevent this, you can
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16395
either remove split_if completely from the default simpset by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16396
`Delsplits [split_if]' or remove it in a specific call of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16397
simplifier using `... delsplits [split_if]'.  You can also add/delete
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16398
other case splitting rules to/from the default simpset: every datatype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16399
generates suitable rules `split_t_case' and `split_t_case_asm' (where
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16400
t is the name of the datatype).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16401
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16402
* Classical reasoner / Simplifier combination: new force_tac (and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16403
derivatives Force_tac, force) combines rewriting and classical
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16404
reasoning (and whatever other tools) similarly to auto_tac, but is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16405
aimed to solve the given subgoal completely.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16406
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16407
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16408
*** General ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16409
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16410
* new top-level commands `Goal' and `Goalw' that improve upon `goal'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16411
and `goalw': the theory is no longer needed as an explicit argument -
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16412
the current theory context is used; assumptions are no longer returned
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16413
at the ML-level unless one of them starts with ==> or !!; it is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16414
recommended to convert to these new commands using isatool fixgoal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16415
(backup your sources first!);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16416
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16417
* new top-level commands 'thm' and 'thms' for retrieving theorems from
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16418
the current theory context, and 'theory' to lookup stored theories;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16419
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16420
* new theory section 'locale' for declaring constants, assumptions and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16421
definitions that have local scope;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16422
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16423
* new theory section 'nonterminals' for purely syntactic types;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16424
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16425
* new theory section 'setup' for generic ML setup functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16426
(e.g. package initialization);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16427
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16428
* the distribution now includes Isabelle icons: see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16429
lib/logo/isabelle-{small,tiny}.xpm;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16430
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16431
* isatool install - install binaries with absolute references to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16432
ISABELLE_HOME/bin;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16433
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16434
* isatool logo -- create instances of the Isabelle logo (as EPS);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16435
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16436
* print mode 'emacs' reserved for Isamode;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16437
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16438
* support multiple print (ast) translations per constant name;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16439
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16440
* theorems involving oracles are now printed with a suffixed [!];
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16441
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16442
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16443
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16444
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16445
* there is now a tutorial on Isabelle/HOL (do 'isatool doc tutorial');
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16446
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16447
* HOL/inductive package reorganized and improved: now supports mutual
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16448
definitions such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16449
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16450
  inductive EVEN ODD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16451
    intrs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16452
      null "0 : EVEN"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16453
      oddI "n : EVEN ==> Suc n : ODD"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16454
      evenI "n : ODD ==> Suc n : EVEN"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16455
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16456
new theorem list "elims" contains an elimination rule for each of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16457
recursive sets; inductive definitions now handle disjunctive premises
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16458
correctly (also ZF);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16459
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16460
INCOMPATIBILITIES: requires Inductive as an ancestor; component
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16461
"mutual_induct" no longer exists - the induction rule is always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16462
contained in "induct";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16463
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16464
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16465
* HOL/datatype package re-implemented and greatly improved: now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16466
supports mutually recursive datatypes such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16467
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16468
  datatype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16469
    'a aexp = IF_THEN_ELSE ('a bexp) ('a aexp) ('a aexp)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16470
            | SUM ('a aexp) ('a aexp)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16471
            | DIFF ('a aexp) ('a aexp)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16472
            | NUM 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16473
  and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16474
    'a bexp = LESS ('a aexp) ('a aexp)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16475
            | AND ('a bexp) ('a bexp)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16476
            | OR ('a bexp) ('a bexp)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16477
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16478
as well as indirectly recursive datatypes such as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16479
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16480
  datatype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16481
    ('a, 'b) term = Var 'a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16482
                  | App 'b ((('a, 'b) term) list)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16483
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16484
The new tactic  mutual_induct_tac [<var_1>, ..., <var_n>] i  performs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16485
induction on mutually / indirectly recursive datatypes.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16486
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16487
Primrec equations are now stored in theory and can be accessed via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16488
<function_name>.simps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16489
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16490
INCOMPATIBILITIES:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16491
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16492
  - Theories using datatypes must now have theory Datatype as an
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16493
    ancestor.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16494
  - The specific <typename>.induct_tac no longer exists - use the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16495
    generic induct_tac instead.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16496
  - natE has been renamed to nat.exhaust - use exhaust_tac
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16497
    instead of res_inst_tac ... natE. Note that the variable
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16498
    names in nat.exhaust differ from the names in natE, this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16499
    may cause some "fragile" proofs to fail.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16500
  - The theorems split_<typename>_case and split_<typename>_case_asm
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16501
    have been renamed to <typename>.split and <typename>.split_asm.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16502
  - Since default sorts of type variables are now handled correctly,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16503
    some datatype definitions may have to be annotated with explicit
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16504
    sort constraints.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16505
  - Primrec definitions no longer require function name and type
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16506
    of recursive argument.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16507
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16508
Consider using isatool fixdatatype to adapt your theories and proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16509
scripts to the new package (backup your sources first!).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16510
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16511
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16512
* HOL/record package: considerably improved implementation; now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16513
includes concrete syntax for record types, terms, updates; theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16514
for surjective pairing and splitting !!-bound record variables; proof
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16515
support is as follows:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16516
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16517
  1) standard conversions (selectors or updates applied to record
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16518
constructor terms) are part of the standard simpset;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16519
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16520
  2) inject equations of the form ((x, y) = (x', y')) == x=x' & y=y' are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16521
made part of standard simpset and claset via addIffs;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16522
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16523
  3) a tactic for record field splitting (record_split_tac) is part of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16524
the standard claset (addSWrapper);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16525
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16526
To get a better idea about these rules you may retrieve them via
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16527
something like 'thms "foo.simps"' or 'thms "foo.iffs"', where "foo" is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16528
the name of your record type.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16529
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16530
The split tactic 3) conceptually simplifies by the following rule:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16531
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16532
  "(!!x. PROP ?P x) == (!!a b. PROP ?P (a, b))"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16533
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16534
Thus any record variable that is bound by meta-all will automatically
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16535
blow up into some record constructor term, consequently the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16536
simplifications of 1), 2) apply.  Thus force_tac, auto_tac etc. shall
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16537
solve record problems automatically.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16538
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16539
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16540
* reorganized the main HOL image: HOL/Integ and String loaded by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16541
default; theory Main includes everything;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16542
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16543
* automatic simplification of integer sums and comparisons, using cancellation;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16544
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16545
* added option_map_eq_Some and not_Some_eq to the default simpset and claset;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16546
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16547
* added disj_not1 = "(~P | Q) = (P --> Q)" to the default simpset;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16548
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16549
* many new identities for unions, intersections, set difference, etc.;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16550
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16551
* expand_if, expand_split, expand_sum_case and expand_nat_case are now
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16552
called split_if, split_split, split_sum_case and split_nat_case (to go
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16553
with add/delsplits);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16554
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16555
* HOL/Prod introduces simplification procedure unit_eq_proc rewriting
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16556
(?x::unit) = (); this is made part of the default simpset, which COULD
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16557
MAKE EXISTING PROOFS FAIL under rare circumstances (consider
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16558
'Delsimprocs [unit_eq_proc];' as last resort); also note that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16559
unit_abs_eta_conv is added in order to counter the effect of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16560
unit_eq_proc on (%u::unit. f u), replacing it by f rather than by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16561
%u.f();
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16562
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16563
* HOL/Fun INCOMPATIBILITY: `inj_onto' is now called `inj_on' (which
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16564
makes more sense);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16565
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16566
* HOL/Set INCOMPATIBILITY: rule `equals0D' is now a well-formed destruct rule;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16567
  It and 'sym RS equals0D' are now in the default  claset, giving automatic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16568
  disjointness reasoning but breaking a few old proofs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16569
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16570
* HOL/Relation INCOMPATIBILITY: renamed the relational operator r^-1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16571
to 'converse' from 'inverse' (for compatibility with ZF and some
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16572
literature);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16573
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16574
* HOL/recdef can now declare non-recursive functions, with {} supplied as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16575
the well-founded relation;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16576
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16577
* HOL/Set INCOMPATIBILITY: the complement of set A is now written -A instead of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16578
    Compl A.  The "Compl" syntax remains available as input syntax for this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16579
    release ONLY.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16580
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16581
* HOL/Update: new theory of function updates:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16582
    f(a:=b) == %x. if x=a then b else f x
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16583
may also be iterated as in f(a:=b,c:=d,...);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16584
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16585
* HOL/Vimage: new theory for inverse image of a function, syntax f-``B;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16586
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16587
* HOL/List:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16588
  - new function list_update written xs[i:=v] that updates the i-th
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16589
    list position. May also be iterated as in xs[i:=a,j:=b,...].
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16590
  - new function `upt' written [i..j(] which generates the list
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16591
    [i,i+1,...,j-1], i.e. the upper bound is excluded. To include the upper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16592
    bound write [i..j], which is a shorthand for [i..j+1(].
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16593
  - new lexicographic orderings and corresponding wellfoundedness theorems.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16594
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16595
* HOL/Arith:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16596
  - removed 'pred' (predecessor) function;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16597
  - generalized some theorems about n-1;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16598
  - many new laws about "div" and "mod";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16599
  - new laws about greatest common divisors (see theory ex/Primes);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16600
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16601
* HOL/Relation: renamed the relational operator r^-1 "converse"
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16602
instead of "inverse";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16603
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16604
* HOL/Induct/Multiset: a theory of multisets, including the wellfoundedness
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16605
  of the multiset ordering;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16606
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16607
* directory HOL/Real: a construction of the reals using Dedekind cuts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16608
  (not included by default);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16609
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16610
* directory HOL/UNITY: Chandy and Misra's UNITY formalism;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16611
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16612
* directory HOL/Hoare: a new version of Hoare logic which permits many-sorted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16613
  programs, i.e. different program variables may have different types.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16614
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16615
* calling (stac rew i) now fails if "rew" has no effect on the goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16616
  [previously, this check worked only if the rewrite rule was unconditional]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16617
  Now rew can involve either definitions or equalities (either == or =).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16618
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16619
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16620
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16621
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16622
* theory Main includes everything; INCOMPATIBILITY: theory ZF.thy contains
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16623
  only the theorems proved on ZF.ML;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16624
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16625
* ZF INCOMPATIBILITY: rule `equals0D' is now a well-formed destruct rule;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16626
  It and 'sym RS equals0D' are now in the default  claset, giving automatic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16627
  disjointness reasoning but breaking a few old proofs.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16628
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16629
* ZF/Update: new theory of function updates
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16630
    with default rewrite rule  f(x:=y) ` z = if(z=x, y, f`z)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16631
  may also be iterated as in f(a:=b,c:=d,...);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16632
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16633
* in  let x=t in u(x), neither t nor u(x) has to be an FOL term.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16634
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16635
* calling (stac rew i) now fails if "rew" has no effect on the goal
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16636
  [previously, this check worked only if the rewrite rule was unconditional]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16637
  Now rew can involve either definitions or equalities (either == or =).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16638
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16639
* case_tac provided for compatibility with HOL
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16640
    (like the old excluded_middle_tac, but with subgoals swapped)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16641
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16642
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16643
*** Internal programming interfaces ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16644
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16645
* Pure: several new basic modules made available for general use, see
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16646
also src/Pure/README;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16647
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16648
* improved the theory data mechanism to support encapsulation (data
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16649
kind name replaced by private Object.kind, acting as authorization
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16650
key); new type-safe user interface via functor TheoryDataFun; generic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16651
print_data function becomes basically useless;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16652
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16653
* removed global_names compatibility flag -- all theory declarations
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16654
are qualified by default;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16655
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16656
* module Pure/Syntax now offers quote / antiquote translation
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16657
functions (useful for Hoare logic etc. with implicit dependencies);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16658
see HOL/ex/Antiquote for an example use;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16659
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16660
* Simplifier now offers conversions (asm_)(full_)rewrite: simpset ->
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16661
cterm -> thm;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16662
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16663
* new tactical CHANGED_GOAL for checking that a tactic modifies a
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16664
subgoal;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16665
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16666
* Display.print_goals function moved to Locale.print_goals;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16667
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16668
* standard print function for goals supports current_goals_markers
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16669
variable for marking begin of proof, end of proof, start of goal; the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16670
default is ("", "", ""); setting current_goals_markers := ("<proof>",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16671
"</proof>", "<goal>") causes SGML like tagged proof state printing,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16672
for example;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16673
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16674
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16675
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16676
New in Isabelle98 (January 1998)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16677
--------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16678
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16679
*** Overview of INCOMPATIBILITIES (see below for more details) ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16680
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16681
* changed lexical syntax of terms / types: dots made part of long
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16682
identifiers, e.g. "%x.x" no longer possible, should be "%x. x";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16683
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16684
* simpset (and claset) reference variable replaced by functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16685
simpset / simpset_ref;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16686
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16687
* no longer supports theory aliases (via merge) and non-trivial
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16688
implicit merge of thms' signatures;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16689
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16690
* most internal names of constants changed due to qualified names;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16691
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16692
* changed Pure/Sequence interface (see Pure/seq.ML);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16693
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16694
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16695
*** General Changes ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16696
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16697
* hierachically structured name spaces (for consts, types, axms, thms
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16698
etc.); new lexical class 'longid' (e.g. Foo.bar.x) may render much of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16699
old input syntactically incorrect (e.g. "%x.x"); COMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16700
isatool fixdots ensures space after dots (e.g. "%x. x"); set
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16701
long_names for fully qualified output names; NOTE: ML programs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16702
(special tactics, packages etc.) referring to internal names may have
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16703
to be adapted to cope with fully qualified names; in case of severe
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16704
backward campatibility problems try setting 'global_names' at compile
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16705
time to have enrything declared within a flat name space; one may also
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16706
fine tune name declarations in theories via the 'global' and 'local'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16707
section;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16708
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16709
* reimplemented the implicit simpset and claset using the new anytype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16710
data filed in signatures; references simpset:simpset ref etc. are
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16711
replaced by functions simpset:unit->simpset and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16712
simpset_ref:unit->simpset ref; COMPATIBILITY: use isatool fixclasimp
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16713
to patch your ML files accordingly;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16714
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16715
* HTML output now includes theory graph data for display with Java
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16716
applet or isatool browser; data generated automatically via isatool
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16717
usedir (see -i option, ISABELLE_USEDIR_OPTIONS);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16718
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16719
* defs may now be conditional; improved rewrite_goals_tac to handle
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16720
conditional equations;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16721
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16722
* defs now admits additional type arguments, using TYPE('a) syntax;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16723
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16724
* theory aliases via merge (e.g. M=A+B+C) no longer supported, always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16725
creates a new theory node; implicit merge of thms' signatures is
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16726
restricted to 'trivial' ones; COMPATIBILITY: one may have to use
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16727
transfer:theory->thm->thm in (rare) cases;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16728
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16729
* improved handling of draft signatures / theories; draft thms (and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16730
ctyps, cterms) are automatically promoted to real ones;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16731
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16732
* slightly changed interfaces for oracles: admit many per theory, named
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16733
(e.g. oracle foo = mlfun), additional name argument for invoke_oracle;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16734
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16735
* print_goals: optional output of const types (set show_consts and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16736
show_types);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16737
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16738
* improved output of warnings (###) and errors (***);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16739
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16740
* subgoal_tac displays a warning if the new subgoal has type variables;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16741
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16742
* removed old README and Makefiles;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16743
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16744
* replaced print_goals_ref hook by print_current_goals_fn and result_error_fn;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16745
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16746
* removed obsolete init_pps and init_database;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16747
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16748
* deleted the obsolete tactical STATE, which was declared by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16749
    fun STATE tacfun st = tacfun st st;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16750
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16751
* cd and use now support path variables, e.g. $ISABELLE_HOME, or ~
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16752
(which abbreviates $HOME);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16753
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16754
* changed Pure/Sequence interface (see Pure/seq.ML); COMPATIBILITY:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16755
use isatool fixseq to adapt your ML programs (this works for fully
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16756
qualified references to the Sequence structure only!);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16757
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16758
* use_thy no longer requires writable current directory; it always
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16759
reloads .ML *and* .thy file, if either one is out of date;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16760
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16761
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16762
*** Classical Reasoner ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16763
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16764
* Clarify_tac, clarify_tac, clarify_step_tac, Clarify_step_tac: new
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16765
tactics that use classical reasoning to simplify a subgoal without
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16766
splitting it into several subgoals;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16767
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16768
* Safe_tac: like safe_tac but uses the default claset;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16769
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16770
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16771
*** Simplifier ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16772
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16773
* added simplification meta rules:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16774
    (asm_)(full_)simplify: simpset -> thm -> thm;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16775
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16776
* simplifier.ML no longer part of Pure -- has to be loaded by object
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16777
logics (again);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16778
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16779
* added prems argument to simplification procedures;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16780
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16781
* HOL, FOL, ZF: added infix function `addsplits':
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16782
  instead of `<simpset> setloop (split_tac <thms>)'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16783
  you can simply write `<simpset> addsplits <thms>'
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16784
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16785
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16786
*** Syntax ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16787
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16788
* TYPE('a) syntax for type reflection terms;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16789
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16790
* no longer handles consts with name "" -- declare as 'syntax' instead;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16791
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16792
* pretty printer: changed order of mixfix annotation preference (again!);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16793
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16794
* Pure: fixed idt/idts vs. pttrn/pttrns syntactic categories;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16795
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16796
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16797
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16798
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16799
* HOL: there is a new splitter `split_asm_tac' that can be used e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16800
  with `addloop' of the simplifier to faciliate case splitting in premises.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16801
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16802
* HOL/TLA: Stephan Merz's formalization of Lamport's Temporal Logic of Actions;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16803
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16804
* HOL/Auth: new protocol proofs including some for the Internet
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16805
  protocol TLS;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16806
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16807
* HOL/Map: new theory of `maps' a la VDM;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16808
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16809
* HOL/simplifier: simplification procedures nat_cancel_sums for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16810
cancelling out common nat summands from =, <, <= (in)equalities, or
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16811
differences; simplification procedures nat_cancel_factor for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16812
cancelling common factor from =, <, <= (in)equalities over natural
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16813
sums; nat_cancel contains both kinds of procedures, it is installed by
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16814
default in Arith.thy -- this COULD MAKE EXISTING PROOFS FAIL;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16815
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16816
* HOL/simplifier: terms of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16817
  `? x. P1(x) & ... & Pn(x) & x=t & Q1(x) & ... Qn(x)'  (or t=x)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16818
  are rewritten to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16819
  `P1(t) & ... & Pn(t) & Q1(t) & ... Qn(t)',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16820
  and those of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16821
  `! x. P1(x) & ... & Pn(x) & x=t & Q1(x) & ... Qn(x) --> R(x)'  (or t=x)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16822
  are rewritten to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16823
  `P1(t) & ... & Pn(t) & Q1(t) & ... Qn(t) --> R(t)',
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16824
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16825
* HOL/datatype
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16826
  Each datatype `t' now comes with a theorem `split_t_case' of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16827
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16828
  P(t_case f1 ... fn x) =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16829
     ( (!y1 ... ym1. x = C1 y1 ... ym1 --> P(f1 y1 ... ym1)) &
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16830
        ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16831
       (!y1 ... ymn. x = Cn y1 ... ymn --> P(f1 y1 ... ymn))
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16832
     )
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16833
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16834
  and a theorem `split_t_case_asm' of the form
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16835
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16836
  P(t_case f1 ... fn x) =
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16837
    ~( (? y1 ... ym1. x = C1 y1 ... ym1 & ~P(f1 y1 ... ym1)) |
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16838
        ...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16839
       (? y1 ... ymn. x = Cn y1 ... ymn & ~P(f1 y1 ... ymn))
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16840
     )
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16841
  which can be added to a simpset via `addsplits'. The existing theorems
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16842
  expand_list_case and expand_option_case have been renamed to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16843
  split_list_case and split_option_case.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16844
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16845
* HOL/Arithmetic:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16846
  - `pred n' is automatically converted to `n-1'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16847
    Users are strongly encouraged not to use `pred' any longer,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16848
    because it will disappear altogether at some point.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16849
  - Users are strongly encouraged to write "0 < n" rather than
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16850
    "n ~= 0". Theorems and proof tools have been modified towards this
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16851
    `standard'.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16852
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16853
* HOL/Lists:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16854
  the function "set_of_list" has been renamed "set" (and its theorems too);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16855
  the function "nth" now takes its arguments in the reverse order and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16856
  has acquired the infix notation "!" as in "xs!n".
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16857
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16858
* HOL/Set: UNIV is now a constant and is no longer translated to Compl{};
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16859
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16860
* HOL/Set: The operator (UN x.B x) now abbreviates (UN x:UNIV. B x) and its
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16861
  specialist theorems (like UN1_I) are gone.  Similarly for (INT x.B x);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16862
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16863
* HOL/record: extensible records with schematic structural subtyping
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16864
(single inheritance); EXPERIMENTAL version demonstrating the encoding,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16865
still lacks various theorems and concrete record syntax;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16866
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16867
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16868
*** HOLCF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16869
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16870
* removed "axioms" and "generated by" sections;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16871
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16872
* replaced "ops" section by extended "consts" section, which is capable of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16873
  handling the continuous function space "->" directly;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16874
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16875
* domain package:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16876
  . proves theorems immediately and stores them in the theory,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16877
  . creates hierachical name space,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16878
  . now uses normal mixfix annotations (instead of cinfix...),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16879
  . minor changes to some names and values (for consistency),
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16880
  . e.g. cases -> casedist, dists_eq -> dist_eqs, [take_lemma] -> take_lemmas,
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16881
  . separator between mutual domain defs: changed "," to "and",
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16882
  . improved handling of sort constraints;  now they have to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16883
    appear on the left-hand side of the equations only;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16884
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16885
* fixed LAM <x,y,zs>.b syntax;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16886
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16887
* added extended adm_tac to simplifier in HOLCF -- can now discharge
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16888
adm (%x. P (t x)), where P is chainfinite and t continuous;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16889
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16890
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16891
*** FOL and ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16892
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16893
* FOL: there is a new splitter `split_asm_tac' that can be used e.g.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16894
  with `addloop' of the simplifier to faciliate case splitting in premises.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16895
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16896
* qed_spec_mp, qed_goal_spec_mp, qed_goalw_spec_mp are available, as
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16897
in HOL, they strip ALL and --> from proved theorems;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16898
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16899
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16900
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16901
New in Isabelle94-8 (May 1997)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16902
------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16903
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16904
*** General Changes ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16905
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16906
* new utilities to build / run / maintain Isabelle etc. (in parts
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16907
still somewhat experimental); old Makefiles etc. still functional;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16908
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16909
* new 'Isabelle System Manual';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16910
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16911
* INSTALL text, together with ./configure and ./build scripts;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16912
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16913
* reimplemented type inference for greater efficiency, better error
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16914
messages and clean internal interface;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16915
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16916
* prlim command for dealing with lots of subgoals (an easier way of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16917
setting goals_limit);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16918
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16919
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16920
*** Syntax ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16921
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16922
* supports alternative (named) syntax tables (parser and pretty
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16923
printer); internal interface is provided by add_modesyntax(_i);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16924
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16925
* Pure, FOL, ZF, HOL, HOLCF now support symbolic input and output; to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16926
be used in conjunction with the Isabelle symbol font; uses the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16927
"symbols" syntax table;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16928
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16929
* added token_translation interface (may translate name tokens in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16930
arbitrary ways, dependent on their type (free, bound, tfree, ...) and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16931
the current print_mode); IMPORTANT: user print translation functions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16932
are responsible for marking newly introduced bounds
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16933
(Syntax.mark_boundT);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16934
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16935
* token translations for modes "xterm" and "xterm_color" that display
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16936
names in bold, underline etc. or colors (which requires a color
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16937
version of xterm);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16938
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16939
* infixes may now be declared with names independent of their syntax;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16940
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16941
* added typed_print_translation (like print_translation, but may
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16942
access type of constant);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16943
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16944
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16945
*** Classical Reasoner ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16946
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16947
Blast_tac: a new tactic!  It is often more powerful than fast_tac, but has
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16948
some limitations.  Blast_tac...
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16949
  + ignores addss, addbefore, addafter; this restriction is intrinsic
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16950
  + ignores elimination rules that don't have the correct format
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16951
        (the conclusion MUST be a formula variable)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16952
  + ignores types, which can make HOL proofs fail
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16953
  + rules must not require higher-order unification, e.g. apply_type in ZF
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16954
    [message "Function Var's argument not a bound variable" relates to this]
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16955
  + its proof strategy is more general but can actually be slower
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16956
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16957
* substitution with equality assumptions no longer permutes other
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16958
assumptions;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16959
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16960
* minor changes in semantics of addafter (now called addaltern); renamed
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16961
setwrapper to setWrapper and compwrapper to compWrapper; added safe wrapper
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16962
(and access functions for it);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16963
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16964
* improved combination of classical reasoner and simplifier:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16965
  + functions for handling clasimpsets
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16966
  + improvement of addss: now the simplifier is called _after_ the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16967
    safe steps.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16968
  + safe variant of addss called addSss: uses safe simplifications
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16969
    _during_ the safe steps. It is more complete as it allows multiple
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16970
    instantiations of unknowns (e.g. with slow_tac).
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16971
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16972
*** Simplifier ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16973
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16974
* added interface for simplification procedures (functions that
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16975
produce *proven* rewrite rules on the fly, depending on current
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16976
redex);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16977
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16978
* ordering on terms as parameter (used for ordered rewriting);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16979
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16980
* new functions delcongs, deleqcongs, and Delcongs. richer rep_ss;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16981
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16982
* the solver is now split into a safe and an unsafe part.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16983
This should be invisible for the normal user, except that the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16984
functions setsolver and addsolver have been renamed to setSolver and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16985
addSolver; added safe_asm_full_simp_tac;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16986
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16987
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16988
*** HOL ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16989
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16990
* a generic induction tactic `induct_tac' which works for all datatypes and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16991
also for type `nat';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16992
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16993
* a generic case distinction tactic `exhaust_tac' which works for all
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16994
datatypes and also for type `nat';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16995
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16996
* each datatype comes with a function `size';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16997
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16998
* patterns in case expressions allow tuple patterns as arguments to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 16999
constructors, for example `case x of [] => ... | (x,y,z)#ps => ...';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17000
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17001
* primrec now also works with type nat;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17002
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17003
* recdef: a new declaration form, allows general recursive functions to be
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17004
defined in theory files.  See HOL/ex/Fib, HOL/ex/Primes, HOL/Subst/Unify.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17005
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17006
* the constant for negation has been renamed from "not" to "Not" to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17007
harmonize with FOL, ZF, LK, etc.;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17008
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17009
* HOL/ex/LFilter theory of a corecursive "filter" functional for
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17010
infinite lists;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17011
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17012
* HOL/Modelcheck demonstrates invocation of model checker oracle;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17013
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17014
* HOL/ex/Ring.thy declares cring_simp, which solves equational
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17015
problems in commutative rings, using axiomatic type classes for + and *;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17016
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17017
* more examples in HOL/MiniML and HOL/Auth;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17018
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17019
* more default rewrite rules for quantifiers, union/intersection;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17020
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17021
* a new constant `arbitrary == @x.False';
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17022
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17023
* HOLCF/IOA replaces old HOL/IOA;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17024
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17025
* HOLCF changes: derived all rules and arities
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17026
  + axiomatic type classes instead of classes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17027
  + typedef instead of faking type definitions
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17028
  + eliminated the internal constants less_fun, less_cfun, UU_fun, UU_cfun etc.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17029
  + new axclasses cpo, chfin, flat with flat < chfin < pcpo < cpo < po
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17030
  + eliminated the types void, one, tr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17031
  + use unit lift and bool lift (with translations) instead of one and tr
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17032
  + eliminated blift from Lift3.thy (use Def instead of blift)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17033
  all eliminated rules are derived as theorems --> no visible changes ;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17034
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17035
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17036
*** ZF ***
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17037
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17038
* ZF now has Fast_tac, Simp_tac and Auto_tac.  Union_iff is a now a default
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17039
rewrite rule; this may affect some proofs.  eq_cs is gone but can be put back
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17040
as ZF_cs addSIs [equalityI];
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17041
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17042
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17043
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17044
New in Isabelle94-7 (November 96)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17045
---------------------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17046
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17047
* allowing negative levels (as offsets) in prlev and choplev;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17048
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17049
* super-linear speedup for large simplifications;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17050
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17051
* FOL, ZF and HOL now use miniscoping: rewriting pushes
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17052
quantifications in as far as possible (COULD MAKE EXISTING PROOFS
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17053
FAIL); can suppress it using the command Delsimps (ex_simps @
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17054
all_simps); De Morgan laws are also now included, by default;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17055
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17056
* improved printing of ==>  :  ~:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17057
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17058
* new object-logic "Sequents" adds linear logic, while replacing LK
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17059
and Modal (thanks to Sara Kalvala);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17060
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17061
* HOL/Auth: correctness proofs for authentication protocols;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17062
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17063
* HOL: new auto_tac combines rewriting and classical reasoning (many
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17064
examples on HOL/Auth);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17065
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17066
* HOL: new command AddIffs for declaring theorems of the form P=Q to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17067
the rewriter and classical reasoner simultaneously;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17068
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17069
* function uresult no longer returns theorems in "standard" format;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17070
regain previous version by: val uresult = standard o uresult;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17071
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17072
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17073
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17074
New in Isabelle94-6
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17075
-------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17076
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17077
* oracles -- these establish an interface between Isabelle and trusted
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17078
external reasoners, which may deliver results as theorems;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17079
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17080
* proof objects (in particular record all uses of oracles);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17081
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17082
* Simp_tac, Fast_tac, etc. that refer to implicit simpset / claset;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17083
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17084
* "constdefs" section in theory files;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17085
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17086
* "primrec" section (HOL) no longer requires names;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17087
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17088
* internal type "tactic" now simply "thm -> thm Sequence.seq";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17089
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17090
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17091
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17092
New in Isabelle94-5
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17093
-------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17094
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17095
* reduced space requirements;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17096
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17097
* automatic HTML generation from theories;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17098
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17099
* theory files no longer require "..." (quotes) around most types;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17100
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17101
* new examples, including two proofs of the Church-Rosser theorem;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17102
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17103
* non-curried (1994) version of HOL is no longer distributed;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17104
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17105
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17106
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17107
New in Isabelle94-4
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17108
-------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17109
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17110
* greatly reduced space requirements;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17111
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17112
* theory files (.thy) no longer require \...\ escapes at line breaks;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17113
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17114
* searchable theorem database (see the section "Retrieving theorems" on
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17115
page 8 of the Reference Manual);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17116
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17117
* new examples, including Grabczewski's monumental case study of the
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17118
Axiom of Choice;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17119
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17120
* The previous version of HOL renamed to Old_HOL;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17121
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17122
* The new version of HOL (previously called CHOL) uses a curried syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17123
for functions.  Application looks like f a b instead of f(a,b);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17124
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17125
* Mutually recursive inductive definitions finally work in HOL;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17126
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17127
* In ZF, pattern-matching on tuples is now available in all abstractions and
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17128
translates to the operator "split";
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17129
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17130
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17131
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17132
New in Isabelle94-3
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17133
-------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17134
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17135
* new infix operator, addss, allowing the classical reasoner to
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17136
perform simplification at each step of its search.  Example:
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17137
        fast_tac (cs addss ss)
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17138
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17139
* a new logic, CHOL, the same as HOL, but with a curried syntax
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17140
for functions.  Application looks like f a b instead of f(a,b).  Also pairs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17141
look like (a,b) instead of <a,b>;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17142
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17143
* PLEASE NOTE: CHOL will eventually replace HOL!
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17144
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17145
* In CHOL, pattern-matching on tuples is now available in all abstractions.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17146
It translates to the operator "split".  A new theory of integers is available;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17147
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17148
* In ZF, integer numerals now denote two's-complement binary integers.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17149
Arithmetic operations can be performed by rewriting.  See ZF/ex/Bin.ML;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17150
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17151
* Many new examples: I/O automata, Church-Rosser theorem, equivalents
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17152
of the Axiom of Choice;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17153
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17154
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17155
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17156
New in Isabelle94-2
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17157
-------------------
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17158
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17159
* Significantly faster resolution;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17160
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17161
* the different sections in a .thy file can now be mixed and repeated
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17162
freely;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17163
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17164
* Database of theorems for FOL, HOL and ZF.  New
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17165
commands including qed, qed_goal and bind_thm store theorems in the database.
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17166
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17167
* Simple database queries: return a named theorem (get_thm) or all theorems of
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17168
a given theory (thms_of), or find out what theory a theorem was proved in
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17169
(theory_of_thm);
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17170
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17171
* Bugs fixed in the inductive definition and datatype packages;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17172
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17173
* The classical reasoner provides deepen_tac and depth_tac, making FOL_dup_cs
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17174
and HOL_dup_cs obsolete;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17175
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17176
* Syntactic ambiguities caused by the new treatment of syntax in Isabelle94-1
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17177
have been removed;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17178
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17179
* Simpler definition of function space in ZF;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17180
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17181
* new results about cardinal and ordinal arithmetic in ZF;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17182
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17183
* 'subtype' facility in HOL for introducing new types as subsets of existing
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17184
types;
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17185
10945fc183cd added documentation about new order prover
Lukas Stevens <mail@lukas-stevens.de>
parents:
diff changeset
 17186
:mode=isabelle-news:wrap=hard:maxLineLen=72: