* Pure/Isar: new command 'unfolding';
authorwenzelm
Tue Jan 03 00:06:18 2006 +0100 (2006-01-03)
changeset 185407b6f57406b1b
parent 18539 35b9ed76b59a
child 18541 00890455e95f
* Pure/Isar: new command 'unfolding';
* ML/Provers: more generic wrt. syntax of object-logics;
tuned;
NEWS
     1.1 --- a/NEWS	Mon Jan 02 20:50:17 2006 +0100
     1.2 +++ b/NEWS	Tue Jan 03 00:06:18 2006 +0100
     1.3 @@ -65,6 +65,11 @@
     1.4  
     1.5    def x == "t" and y == "u"
     1.6  
     1.7 +* Isar: added command 'unfolding', which is structurally similar to
     1.8 +'using', but affects both the goal state and facts by unfolding given
     1.9 +meta-level equations.  Thus many occurrences of the 'unfold' method or
    1.10 +'unfolded' attribute may be replaced by first-class proof text.
    1.11 +
    1.12  * Provers/induct: improved internal context management to support
    1.13  local fixes and defines on-the-fly.  Thus explicit meta-level
    1.14  connectives !! and ==> are rarely required anymore in inductive goals
    1.15 @@ -225,14 +230,15 @@
    1.16    val burrow: ('a list -> 'b list) -> 'a list list -> 'b list list
    1.17    val burrow_split: ('a list -> 'c * 'b list) -> 'a list list -> 'c * 'b list list
    1.18  
    1.19 -The semantics of "burrow" is: "take a function with *simulatanously* transforms
    1.20 -a list of value, and apply it *simulatanously* to a list of list of values of the
    1.21 -appropriate type". Confer this with "map" which would *not* apply its argument
    1.22 -function simulatanously but in sequence. "burrow_split" allows the transformator
    1.23 -function to yield an additional side result.
    1.24 -
    1.25 -Both actually avoid the usage of "unflat" since they hide away "unflat"
    1.26 -from the user.
    1.27 +The semantics of "burrow" is: "take a function with *simulatanously*
    1.28 +transforms a list of value, and apply it *simulatanously* to a list of
    1.29 +list of values of the appropriate type". Confer this with "map" which
    1.30 +would *not* apply its argument function simulatanously but in
    1.31 +sequence. "burrow_split" allows the transformator function to yield an
    1.32 +additional side result.
    1.33 +
    1.34 +Both actually avoid the usage of "unflat" since they hide away
    1.35 +"unflat" from the user.
    1.36  
    1.37  * Pure/library: functions map2 and fold2 with curried syntax for
    1.38  simultanous mapping and folding:
    1.39 @@ -256,13 +262,6 @@
    1.40  * Pure/General: name_mangler.ML provides a functor for generic name
    1.41  mangling (bijective mapping from any expression values to strings).
    1.42  
    1.43 -* Pure/library:
    1.44 -
    1.45 -  val is_prefix: ('a * 'a -> bool) -> 'a list -> 'a list -> bool
    1.46 -
    1.47 -  replacing infix "prefix" and various individual isomorphic functions scattered
    1.48 -  among an amount of ML modules.
    1.49 -
    1.50  * Pure/General: rat.ML implements rational numbers.
    1.51  
    1.52  * Pure: several functions of signature "... -> theory -> theory * ..."
    1.53 @@ -278,7 +277,7 @@
    1.54  slightly more general idea of ``protecting'' meta-level rule
    1.55  statements.
    1.56  
    1.57 -* Internal goals: structure Goal provides simple interfaces for
    1.58 +* Pure/goals: structure Goal provides simple interfaces for
    1.59  init/conclude/finish and tactical prove operations (replacing former
    1.60  Tactic.prove).  Note that OldGoals.prove_goalw_cterm has long been
    1.61  obsolete, it is ill-behaved in a local proof context (e.g. with local
    1.62 @@ -302,6 +301,9 @@
    1.63  theory; raw versions simpset/claset_ref etc. have been discontinued --
    1.64  INCOMPATIBILITY.
    1.65  
    1.66 +* Provers: more generic wrt. syntax of object-logics, avoid hardwired
    1.67 +"Trueprop" etc.
    1.68 +
    1.69  
    1.70  
    1.71  New in Isabelle2005 (October 2005)