merged, abandoning change of src/HOL/Tools/ATP/atp_problem_generate.ML from 6ea205a4d7fd;
authorwenzelm
Wed May 23 12:02:27 2012 +0200 (2012-05-23)
changeset 47958c5f7be4a1734
parent 47957 d2bdd85ee23c
parent 47886 7d30534e545b
child 47959 dba9409a3a5b
child 47962 137883567114
merged, abandoning change of src/HOL/Tools/ATP/atp_problem_generate.ML from 6ea205a4d7fd;
NEWS
src/HOL/Tools/ATP/atp_problem_generate.ML
     1.1 --- a/.hgtags	Tue May 22 16:59:27 2012 +0200
     1.2 +++ b/.hgtags	Wed May 23 12:02:27 2012 +0200
     1.3 @@ -28,4 +28,4 @@
     1.4  35815ce9218a8822a50f5d80b96aa8d1970ec35d Isabelle2009-2
     1.5  6d736d983d5cfec4a6c6fba174db2cd93493a96b Isabelle2011
     1.6  76fef3e570043b84a32716b5633085d2fb215525 Isabelle2011-1
     1.7 -
     1.8 +21c42b095c841d1a7508c143d6b6e98d95dbfa69 Isabelle2012
     2.1 --- a/ANNOUNCE	Tue May 22 16:59:27 2012 +0200
     2.2 +++ b/ANNOUNCE	Wed May 23 12:02:27 2012 +0200
     2.3 @@ -3,10 +3,35 @@
     2.4  
     2.5  Isabelle2012 is now available.
     2.6  
     2.7 -This version significantly improves upon Isabelle2011-1, see the NEWS
     2.8 -file in the distribution for more details.  Some notable changes are:
     2.9 +This version introduces many changes and improvements over
    2.10 +Isabelle2011-1, see the NEWS file in the distribution for more
    2.11 +details.  Some highlights are:
    2.12 +
    2.13 +* Improved Isabelle/jEdit Prover IDE (PIDE).
    2.14 +
    2.15 +* Support for block-structured specification contexts.
    2.16 +
    2.17 +* Discontinued old code generator.
    2.18 +
    2.19 +* Updated manuals: prog-prove, isar-ref, implementation, system.
    2.20 +
    2.21 +* HOL: type 'a set is proper type constructor again.
    2.22  
    2.23 -* FIXME
    2.24 +* HOL: improved representation of numerals.
    2.25 +
    2.26 +* HOL: new transfer and lifting packages, improved quotient package.
    2.27 +
    2.28 +* HOL tool enhancements: Quickcheck, Nitpick, Sledgehammer.
    2.29 +
    2.30 +* HOL library enhancements, including HOL-Library and HOL-Probability.
    2.31 +
    2.32 +* HOL: more TPTP support.
    2.33 +
    2.34 +* Re-implementation of HOL-Import for HOL-Light.
    2.35 +
    2.36 +* ZF: some modernization of notation and proofs.
    2.37 +
    2.38 +* System integration: improved support of Windows platform.
    2.39  
    2.40  
    2.41  You may get Isabelle2012 from the following mirror sites:
     3.1 --- a/Admin/CHECKLIST	Tue May 22 16:59:27 2012 +0200
     3.2 +++ b/Admin/CHECKLIST	Wed May 23 12:02:27 2012 +0200
     3.3 @@ -67,10 +67,9 @@
     3.4  
     3.5  - makedist: REPOS_NAME="isabelle-release"
     3.6  
     3.7 -- hgrc: default = /home/isabelle-repository/repos/isabelle-release
     3.8 +- various .hg/hgrc files:
     3.9 +  default = /home/isabelle-repository/repos/isabelle-release
    3.10  
    3.11 -  isatest@macbroy28:hg-isabelle/.hg/hgrc
    3.12 -  isatest@atbroy102:hg-isabelle/.hg/hgrc
    3.13 -
    3.14 +- isatest@macbroy28:hg-isabelle/.hg/hgrc
    3.15  - isatest@macbroy28:devel-page/content/index.content
    3.16  
     4.1 --- a/Admin/Cygwin/README	Tue May 22 16:59:27 2012 +0200
     4.2 +++ b/Admin/Cygwin/README	Wed May 23 12:02:27 2012 +0200
     4.3 @@ -11,7 +11,7 @@
     4.4  http://cygwin.com/ml/cygwin/2012-04/msg00415.html
     4.5  http://cygwin.com/ml/cygwin/2012-04/msg00417.html
     4.6  
     4.7 -* Mirror with many old versions (not setup.init!)
     4.8 +* Mirror with many old versions (not setup.ini)
     4.9    http://ftp.eq.uc.pt/software/pc/prog/cygwin
    4.10  
    4.11  * Time machine for older versions:
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/Admin/Cygwin/init.bat	Wed May 23 12:02:27 2012 +0200
     5.3 @@ -0,0 +1,8 @@
     5.4 +@echo off
     5.5 +
     5.6 +cd "%~dp0"
     5.7 +cd "..\.."
     5.8 +
     5.9 +echo Initializing ...
    5.10 +"contrib\cygwin-1.7.9\bin\ash" /bin/rebaseall
    5.11 +"contrib\cygwin-1.7.9\bin\bash" -c "PATH=/bin; chmod -wx $(find heaps -type f); mkpasswd -l >/etc/passwd; mkgroup -l >/etc/group"
     6.1 --- a/Admin/Cygwin/sfx.txt	Tue May 22 16:59:27 2012 +0200
     6.2 +++ b/Admin/Cygwin/sfx.txt	Wed May 23 12:02:27 2012 +0200
     6.3 @@ -5,4 +5,5 @@
     6.4  ExtractPathText="Target directory"
     6.5  ExtractTitle="Unpacking Isabelle2012 ..."
     6.6  Shortcut="Du,{%%T\Isabelle2012\Isabelle.exe},{},{},{},{},{%%T\Isabelle2012}"
     6.7 +RunProgram="\"%%T\Isabelle2012\contrib\cygwin-1.7.9\init.bat\""
     6.8  ;!@InstallEnd@!
     7.1 Binary file Admin/launch4j/Isabelle.exe has changed
     8.1 --- a/Admin/launch4j/isabelle.xml	Tue May 22 16:59:27 2012 +0200
     8.2 +++ b/Admin/launch4j/isabelle.xml	Wed May 23 12:02:27 2012 +0200
     8.3 @@ -15,12 +15,12 @@
     8.4    <icon>isabelle.ico</icon>
     8.5    <classPath>
     8.6      <mainClass>isabelle.Main</mainClass>
     8.7 -    <cp>lib\classes\ext\Pure.jar</cp>
     8.8 -    <cp>lib\classes\ext\scala-library.jar</cp>
     8.9 -    <cp>lib\classes\ext\scala-swing.jar</cp>
    8.10 +    <cp>%EXEDIR%\lib\classes\ext\Pure.jar</cp>
    8.11 +    <cp>%EXEDIR%\lib\classes\ext\scala-library.jar</cp>
    8.12 +    <cp>%EXEDIR%\lib\classes\ext\scala-swing.jar</cp>
    8.13    </classPath>
    8.14    <jre>
    8.15 -    <path>contrib\jdk-6u31_x86-cygwin\jdk1.6.0_31</path>
    8.16 +    <path>%EXEDIR%\contrib\jdk-6u31_x86-cygwin\jdk1.6.0_31</path>
    8.17      <minVersion></minVersion>
    8.18      <maxVersion></maxVersion>
    8.19      <jdkPreference>jdkOnly</jdkPreference>
     9.1 --- a/NEWS	Tue May 22 16:59:27 2012 +0200
     9.2 +++ b/NEWS	Wed May 23 12:02:27 2012 +0200
     9.3 @@ -758,6 +758,9 @@
     9.4  * New theory HOL/Library/DAList provides an abstract type for
     9.5  association lists with distinct keys.
     9.6  
     9.7 +* Session HOL/IMP: Added new theory of abstract interpretation of
     9.8 +annotated commands.
     9.9 +
    9.10  * Session HOL-Import: Re-implementation from scratch is faster,
    9.11  simpler, and more scalable.  Requires a proof bundle, which is
    9.12  available as an external component.  Discontinued old (and mostly
    10.1 --- a/doc-src/Main/Docs/Main_Doc.thy	Tue May 22 16:59:27 2012 +0200
    10.2 +++ b/doc-src/Main/Docs/Main_Doc.thy	Wed May 23 12:02:27 2012 +0200
    10.3 @@ -26,7 +26,7 @@
    10.4  text{*
    10.5  
    10.6  \begin{abstract}
    10.7 -This document lists the main types, functions and syntax provided by theory @{theory Main}. It is meant as a quick overview of what is available. The sophisticated class structure is only hinted at. For details see \url{http://isabelle.in.tum.de/dist/library/HOL/}.
    10.8 +This document lists the main types, functions and syntax provided by theory @{theory Main}. It is meant as a quick overview of what is available. The sophisticated class structure is only hinted at. For details see \url{http://isabelle.in.tum.de/library/HOL/}.
    10.9  \end{abstract}
   10.10  
   10.11  \section{HOL}
    11.1 --- a/doc-src/Main/Docs/document/Main_Doc.tex	Tue May 22 16:59:27 2012 +0200
    11.2 +++ b/doc-src/Main/Docs/document/Main_Doc.tex	Wed May 23 12:02:27 2012 +0200
    11.3 @@ -30,7 +30,7 @@
    11.4  %
    11.5  \begin{isamarkuptext}%
    11.6  \begin{abstract}
    11.7 -This document lists the main types, functions and syntax provided by theory \isa{Main}. It is meant as a quick overview of what is available. The sophisticated class structure is only hinted at. For details see \url{http://isabelle.in.tum.de/dist/library/HOL/}.
    11.8 +This document lists the main types, functions and syntax provided by theory \isa{Main}. It is meant as a quick overview of what is available. The sophisticated class structure is only hinted at. For details see \url{http://isabelle.in.tum.de/library/HOL/}.
    11.9  \end{abstract}
   11.10  
   11.11  \section{HOL}
    12.1 --- a/lib/Tools/display	Tue May 22 16:59:27 2012 +0200
    12.2 +++ b/lib/Tools/display	Wed May 23 12:02:27 2012 +0200
    12.3 @@ -74,6 +74,7 @@
    12.4    PRIVATE_FILE="${ISABELLE_TMP:-/tmp}/$$"$(basename "$FILE")
    12.5    mv "$FILE" "$PRIVATE_FILE" || fail "Cannot move file: $FILE"
    12.6    $VIEWER "$PRIVATE_FILE"
    12.7 +  sleep 5   #try to avoid races
    12.8    rm -f "$PRIVATE_FILE"
    12.9  else
   12.10    exec $VIEWER "$FILE"
    13.1 --- a/lib/scripts/feeder.pl	Tue May 22 16:59:27 2012 +0200
    13.2 +++ b/lib/scripts/feeder.pl	Wed May 23 12:02:27 2012 +0200
    13.3 @@ -11,8 +11,6 @@
    13.4  
    13.5  # setup signal handlers
    13.6  
    13.7 -sub hangup { exit(0); }
    13.8 -$SIG{'HUP'} = "hangup";
    13.9  $SIG{'INT'} = "IGNORE";
   13.10  
   13.11  
    14.1 --- a/src/HOL/Isar_Examples/Group_Context.thy	Tue May 22 16:59:27 2012 +0200
    14.2 +++ b/src/HOL/Isar_Examples/Group_Context.thy	Wed May 23 12:02:27 2012 +0200
    14.3 @@ -55,10 +55,10 @@
    14.4    finally show "x ** one = x" .
    14.5  qed
    14.6  
    14.7 -lemma one_equality: "e ** x = x \<Longrightarrow> one = e"
    14.8 +lemma one_equality:
    14.9 +  assumes eq: "e ** x = x"
   14.10 +  shows "one = e"
   14.11  proof -
   14.12 -  fix e x
   14.13 -  assume eq: "e ** x = x"
   14.14    have "one = x ** inverse x"
   14.15      by (simp only: right_inverse)
   14.16    also have "\<dots> = (e ** x) ** inverse x"
   14.17 @@ -72,10 +72,10 @@
   14.18    finally show "one = e" .
   14.19  qed
   14.20  
   14.21 -lemma inverse_equality: "x' ** x = one \<Longrightarrow> inverse x = x'"
   14.22 +lemma inverse_equality:
   14.23 +  assumes eq: "x' ** x = one"
   14.24 +  shows "inverse x = x'"
   14.25  proof -
   14.26 -  fix x x'
   14.27 -  assume eq: "x' ** x = one"
   14.28    have "inverse x = one ** inverse x"
   14.29      by (simp only: left_one)
   14.30    also have "\<dots> = (x' ** x) ** inverse x"
    15.1 --- a/src/HOL/Isar_Examples/ROOT.ML	Tue May 22 16:59:27 2012 +0200
    15.2 +++ b/src/HOL/Isar_Examples/ROOT.ML	Wed May 23 12:02:27 2012 +0200
    15.3 @@ -5,14 +5,17 @@
    15.4  use_thys [
    15.5    "Basic_Logic",
    15.6    "Cantor",
    15.7 -  "Peirce",
    15.8    "Drinker",
    15.9    "Expr_Compiler",
   15.10 +  "Fibonacci",
   15.11    "Group",
   15.12 -  "Summation",
   15.13 +  "Group_Context",
   15.14 +  "Group_Notepad",
   15.15 +  "Hoare_Ex",
   15.16    "Knaster_Tarski",
   15.17    "Mutilated_Checkerboard",
   15.18 +  "Nested_Datatype",
   15.19 +  "Peirce",
   15.20    "Puzzle",
   15.21 -  "Nested_Datatype",
   15.22 -  "Hoare_Ex"
   15.23 +  "Summation"
   15.24  ];
    16.1 --- a/src/HOL/SPARK/Tools/spark_vcs.ML	Tue May 22 16:59:27 2012 +0200
    16.2 +++ b/src/HOL/SPARK/Tools/spark_vcs.ML	Wed May 23 12:02:27 2012 +0200
    16.3 @@ -1066,7 +1066,7 @@
    16.4          Symtab.update ("true", (@{term True}, booleanN)),
    16.5          Name.context),
    16.6         thy |> Sign.add_path
    16.7 -         (if prfx = "" then Long_Name.base_name ident else prfx)) |>
    16.8 +         ((if prfx = "" then "" else prfx ^ "__") ^ Long_Name.base_name ident)) |>
    16.9        fold (add_type_def prfx) (items types) |>
   16.10        fold (snd oo add_const prfx) consts' |> (fn ids_thy as ((tab, _), _) =>
   16.11          ids_thy |>
    18.1 --- a/src/HOL/Tools/inductive.ML	Tue May 22 16:59:27 2012 +0200
    18.2 +++ b/src/HOL/Tools/inductive.ML	Wed May 23 12:02:27 2012 +0200
    18.3 @@ -469,7 +469,7 @@
    18.4              fun list_ex ([], t) = t
    18.5                | list_ex ((a, T) :: vars, t) =
    18.6                    HOLogic.exists_const T $ Abs (a, T, list_ex (vars, t));
    18.7 -            val conjs = map2 (curry HOLogic.mk_eq) frees us @ (map HOLogic.dest_Trueprop ts);
    18.8 +            val conjs = map2 (curry HOLogic.mk_eq) frees us @ map HOLogic.dest_Trueprop ts;
    18.9            in
   18.10              list_ex (params', if null conjs then @{term True} else foldr1 HOLogic.mk_conj conjs)
   18.11            end;
   18.12 @@ -479,26 +479,30 @@
   18.13            else foldr1 HOLogic.mk_disj (map mk_intr_conj c_intrs);
   18.14          val eq = HOLogic.mk_Trueprop (HOLogic.mk_eq (lhs, rhs));
   18.15          fun prove_intr1 (i, _) = Subgoal.FOCUS_PREMS (fn {params, prems, ...} =>
   18.16 -            let
   18.17 -              val (prems', last_prem) = split_last prems;
   18.18 -            in
   18.19 -              EVERY1 (select_disj (length c_intrs) (i + 1)) THEN
   18.20 -              EVERY (replicate (length params) (rtac @{thm exI} 1)) THEN
   18.21 -              EVERY (map (fn prem => (rtac @{thm conjI} 1 THEN rtac prem 1)) prems') THEN
   18.22 -              rtac last_prem 1
   18.23 -            end) ctxt' 1;
   18.24 +            EVERY1 (select_disj (length c_intrs) (i + 1)) THEN
   18.25 +            EVERY (replicate (length params) (rtac @{thm exI} 1)) THEN
   18.26 +            (if null prems then rtac @{thm TrueI} 1
   18.27 +             else
   18.28 +              let
   18.29 +                val (prems', last_prem) = split_last prems;
   18.30 +              in
   18.31 +                EVERY (map (fn prem => (rtac @{thm conjI} 1 THEN rtac prem 1)) prems') THEN
   18.32 +                rtac last_prem 1
   18.33 +              end)) ctxt' 1;
   18.34          fun prove_intr2 (((_, _, us, _), ts, params'), intr) =
   18.35            EVERY (replicate (length params') (etac @{thm exE} 1)) THEN
   18.36 -          EVERY (replicate (length ts + length us - 1) (etac @{thm conjE} 1)) THEN
   18.37 -          Subgoal.FOCUS_PREMS (fn {params, prems, ...} =>
   18.38 -            let
   18.39 -              val (eqs, prems') = chop (length us) prems;
   18.40 -              val rew_thms = map (fn th => th RS @{thm eq_reflection}) eqs;
   18.41 -            in
   18.42 -              rewrite_goal_tac rew_thms 1 THEN
   18.43 -              rtac intr 1 THEN
   18.44 -              EVERY (map (fn p => rtac p 1) prems')
   18.45 -            end) ctxt' 1;
   18.46 +          (if null ts andalso null us then rtac intr 1
   18.47 +           else
   18.48 +            EVERY (replicate (length ts + length us - 1) (etac @{thm conjE} 1)) THEN
   18.49 +            Subgoal.FOCUS_PREMS (fn {params, prems, ...} =>
   18.50 +              let
   18.51 +                val (eqs, prems') = chop (length us) prems;
   18.52 +                val rew_thms = map (fn th => th RS @{thm eq_reflection}) eqs;
   18.53 +              in
   18.54 +                rewrite_goal_tac rew_thms 1 THEN
   18.55 +                rtac intr 1 THEN
   18.56 +                EVERY (map (fn p => rtac p 1) prems')
   18.57 +              end) ctxt' 1);
   18.58        in
   18.59          Skip_Proof.prove ctxt' [] [] eq (fn _ =>
   18.60            rtac @{thm iffI} 1 THEN etac (#1 elim) 1 THEN
    19.1 --- a/src/Pure/Isar/toplevel.ML	Tue May 22 16:59:27 2012 +0200
    19.2 +++ b/src/Pure/Isar/toplevel.ML	Wed May 23 12:02:27 2012 +0200
    19.3 @@ -188,7 +188,7 @@
    19.4    | _ => raise UNDEF);
    19.5  
    19.6  fun end_theory _ (State (NONE, SOME (Theory (Context.Theory thy, _)))) = thy
    19.7 -  | end_theory pos (State (NONE, _)) = error ("Missing theory" ^ Position.str_of pos)
    19.8 +  | end_theory pos (State (NONE, _)) = error ("Bad theory" ^ Position.str_of pos)
    19.9    | end_theory pos (State (SOME _, _)) = error ("Unfinished theory" ^ Position.str_of pos);
   19.10  
   19.11  
    20.1 --- a/src/Pure/System/main.scala	Tue May 22 16:59:27 2012 +0200
    20.2 +++ b/src/Pure/System/main.scala	Wed May 23 12:02:27 2012 +0200
    20.3 @@ -21,11 +21,9 @@
    20.4        }
    20.5        catch { case exn: Throwable => (Exn.message(exn), 2) }
    20.6  
    20.7 -    if (rc != 0) {
    20.8 -      val text = new TextArea(out + "\nReturn code: " + rc)
    20.9 -      text.editable = false
   20.10 -      Library.dialog(null, "Isabelle", "Isabelle output", text)
   20.11 -    }
   20.12 +    if (rc != 0)
   20.13 +      Library.dialog(null, "Isabelle", "Isabelle output",
   20.14 +        Library.scrollable_text(out + "\nReturn code: " + rc))
   20.15  
   20.16      System.exit(rc)
   20.17    }
    21.1 --- a/src/Pure/library.scala	Tue May 22 16:59:27 2012 +0200
    21.2 +++ b/src/Pure/library.scala	Wed May 23 12:02:27 2012 +0200
    21.3 @@ -12,7 +12,7 @@
    21.4  import java.awt.Component
    21.5  import javax.swing.JOptionPane
    21.6  
    21.7 -import scala.swing.ComboBox
    21.8 +import scala.swing.{ComboBox, TextArea, ScrollPane}
    21.9  import scala.swing.event.SelectionChanged
   21.10  import scala.collection.mutable
   21.11  
   21.12 @@ -130,6 +130,14 @@
   21.13  
   21.14    /* simple dialogs */
   21.15  
   21.16 +  def scrollable_text(txt: String, width: Int = 76, editable: Boolean = false): ScrollPane =
   21.17 +  {
   21.18 +    val text = new TextArea(txt)
   21.19 +    if (width > 0) text.columns = width
   21.20 +    text.editable = editable
   21.21 +    new ScrollPane(text)
   21.22 +  }
   21.23 +
   21.24    private def simple_dialog(kind: Int, default_title: String,
   21.25      parent: Component, title: String, message: Seq[Any])
   21.26    {
    22.1 --- a/src/Tools/JVM/java_ext_dirs	Tue May 22 16:59:27 2012 +0200
    22.2 +++ b/src/Tools/JVM/java_ext_dirs	Wed May 23 12:02:27 2012 +0200
    22.3 @@ -17,7 +17,7 @@
    22.4  
    22.5  ## main
    22.6  
    22.7 -isabelle_jdk java \
    22.8 +isabelle_jdk java -Dfile.encoding=UTF-8 \
    22.9    -classpath "$(jvmpath "$ISABELLE_HOME/src/Tools/JVM/java_ext_dirs.jar")" \
   22.10    isabelle.Java_Ext_Dirs "$(jvmpath "$ISABELLE_HOME/lib/classes/ext")" 2>/dev/null
   22.11  
    23.1 --- a/src/Tools/jEdit/src/isabelle_hyperlinks.scala	Tue May 22 16:59:27 2012 +0200
    23.2 +++ b/src/Tools/jEdit/src/isabelle_hyperlinks.scala	Wed May 23 12:02:27 2012 +0200
    23.3 @@ -40,7 +40,8 @@
    23.4    override def click(view: View) = {
    23.5      Isabelle_System.source_file(Path.explode(def_file)) match {
    23.6        case None =>
    23.7 -        Library.error_dialog(view, "File not found", "Could not find source file " + def_file)
    23.8 +        Library.error_dialog(view, "File not found",
    23.9 +          Library.scrollable_text("Could not find source file " + def_file))
   23.10        case Some(file) =>
   23.11          jEdit.openFiles(view, file.getParent, Array(file.getName, "+line:" + def_line))
   23.12      }
    24.1 --- a/src/Tools/jEdit/src/plugin.scala	Tue May 22 16:59:27 2012 +0200
    24.2 +++ b/src/Tools/jEdit/src/plugin.scala	Wed May 23 12:02:27 2012 +0200
    24.3 @@ -388,9 +388,9 @@
    24.4            phase match {
    24.5              case Session.Failed =>
    24.6                Swing_Thread.later {
    24.7 -                val text = new scala.swing.TextArea(Isabelle.session.current_syslog())
    24.8 -                text.editable = false
    24.9 -                Library.error_dialog(jEdit.getActiveView, "Failed to start Isabelle process", text)
   24.10 +                Library.error_dialog(jEdit.getActiveView,
   24.11 +                  "Failed to start Isabelle process",
   24.12 +                    Library.scrollable_text(Isabelle.session.current_syslog()))
   24.13                }
   24.14  
   24.15              case Session.Ready =>