test/Tools/isac/Test_Isac.thy
author Walther Neuper <walther.neuper@jku.at>
Thu, 12 Sep 2019 14:42:53 +0200
changeset 59617 5c4230e32124
parent 59603 30cd47104ad7
child 59618 80efccb7e5c1
permissions -rw-r--r--
/----- finish update Isabelle2018 --> Isabelle2019 for Test_Isac.thy
     1 (* Title:  All tests on isac (some outcommented since Isabelle2002-->2009-2)
     2    Author: Walther Neuper 101001
     3    (c) copyright due to license terms.
     4 
     5    Isac's tests are organised parallel to sources: 
     6      "~~/test/Tools/isac" has same directory structure as "~~/src/Tools/isac"
     7    plus
     8      ~~/test/Tools/isac/ADDTESTS
     9      ~~/test/Tools/isac/Minisubpbl: the Lucas-Interpreter's core functionality
    10 -------------------------------------------------------------------------------
    11 
    12 Prepare running tests: see below
    13 Run tests:
    14 $ cd /usr/local/isabisac/
    15 $ export ISABELLE_VERSION=2015 # for libisabelle
    16 $ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy &
    17 *)
    18 
    19 section \<open>Prepare running tests\<close>
    20 text \<open>
    21 Isac encapsulates code as much as possible in structures without open. TODO ProgLang.
    22 This policy conflicts with those tests, which go into functions to details
    23 not declared in the signatures.
    24 
    25 In order to maintain these tests without changes, this has to be done before running tests:
    26 (1) Extend signatures for tests by
    27     ~~$ ./xcoding-to-test.sh
    28     ~~$ ./zcoding-to-test.sh  # -"- + go back to Test_Isac.thy
    29     Running Test_Isac.thy opens all structures, see code after "begin" below.
    30 (2) Clean signatures for coding
    31     ~~$ ./xtest-to-coding.sh
    32     ~~$ ./xtest-to-coding.sh  # -"- + go back to coding (!update thy!)
    33 
    34 ********************* don't forget (2) BEFORE pushing to repository *********************
    35 
    36 The above bash files accomplish query replace in src/Tools/isac:
    37     \<clubsuit>--- ! aktivate for Test_Isac BEGIN ---\* )\<clubsuit> \<longrightarrow> \<clubsuit>--- ! aktivate for Test_Isac BEGIN ---\*)\<clubsuit>
    38     \<clubsuit>( *\--- ! aktivate for Test_Isac END ---\<clubsuit>   \<longrightarrow> \<clubsuit>(*\--- ! aktivate for Test_Isac END ---\<clubsuit>
    39      ^^^ in signature outcommented,                     ^^^ NOT outcommented,
    40          this is status for coding                          this is status for tests
    41 \<close>
    42 
    43 section \<open>code for copy & paste\<close>
    44 text \<open>
    45 "~~~~~ fun , args:"; val () = ();
    46 "~~~~~ and , args:"; val () = ();
    47 "~~~~~ from xxx to yyy return val:"; val ((*yyy*)) = ((*xxx*));
    48 
    49 \<close>
    50 section \<open>Run the tests\<close>
    51 text \<open>
    52 * say "OK" to the popup asking for theories to be loaded
    53 * watch the <Theories> window for errors in the "imports" below
    54 \<close>
    55 
    56 theory Test_Isac 
    57 imports Isac.Build_Isac (* note that imports are WITHOUT open struct ..*)
    58 (*/---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------\*)
    59   "ADDTESTS/accumulate-val/Thy_All"
    60   "ADDTESTS/Ctxt"
    61   "ADDTESTS/test-depend/Build_Test"
    62   "ADDTESTS/All_Ctxt"
    63   "ADDTESTS/Test_Units"
    64   "ADDTESTS/course/phst11/T1_Basics"
    65   "ADDTESTS/course/phst11/T2_Rewriting"
    66   "ADDTESTS/course/phst11/T3_MathEngine"
    67   "ADDTESTS/file-depend/BuildC_Test"
    68   "ADDTESTS/session-get_theory/Foo"
    69 (*"ADDTESTS/course/SignalProcess/Build_Inverse_Z_Transform"
    70    ADDTESTS/------------------------------------------- see end of tests *)
    71 (*"~~/test/Pure/Isar/Test_Parsers"           dropped Isabelle2014-->2015 *)
    72 (*"~~/test/Pure/Isar/Pure/Isar/Struct_Deriv" lost at update 2009-2-->2011*)
    73   "~~/test/Pure/Isar/Test_Parse_Term"
    74 (*/---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------\*)
    75   "~~/test/Tools/isac/Interpret/ptyps"       (* setup for ptyps.sml    *)
    76   "~~/test/Tools/isac/ProgLang/calculate"    (* setup for calculate.sml*)
    77 
    78 
    79 
    80   "~~/test/Tools/isac/ProgLang/scrtools"     (* setup for scrtools.sml *)
    81   "~~/test/Tools/isac/Knowledge/integrate"   (* setup for integrate.sml*)
    82 (*\---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------/*)
    83   "~~/src/Tools/isac/Knowledge/GCD_Poly_OLD" (*not imported by Isac.thy*)
    84   "~~/src/Tools/isac/Knowledge/GCD_Poly_FP"  (*not imported by Isac.thy*)
    85 (*\---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------/*)
    86 
    87 begin
    88 
    89 ML \<open>
    90 (*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\*)
    91                       (* these vvv test, if funs are intermediately opened in structure 
    92                          in case of errors here consider ~~/./xtest-to-coding.sh      *)
    93   open Kernel;
    94   open Math_Engine;            CalcTreeTEST;
    95   open Lucin;                  itms2args;
    96   open LucinNEW;               appy;
    97   open Istate;
    98   open Inform;                 cas_input;
    99   open Rtools;                 trtas2str;
   100   open Chead;                  pt_extract;
   101   open Generate;               (* NONE *)
   102   open Ctree;                  append_problem;
   103   open Prog_Tac;
   104   open Tactical;
   105   open Prog_Expr;
   106 (*open Auto_Prog;*)
   107   open Input_Descript;
   108   open Specify;                show_ptyps;
   109   open Applicable;             mk_set;
   110   open Solve;                  (* NONE *)
   111   open Selem;                  e_fmz;
   112   open Stool;                  (* NONE *)
   113   open ContextC;               transfer_asms_from_to;
   114   open Tactic;                 (* NONE *)
   115   open Model;                  (* NONE *)
   116   open LTool;                  rule2stac;
   117   open Rewrite;                mk_thm;
   118   open Calc;                   get_pair;
   119   open TermC;                  atomt;
   120   open Celem;                  e_pbt;
   121   open Rule;                   string_of_thm;
   122 (*\--- ! aktivate for Test_Isac END ----------------------------------------------------------/*)
   123 \<close>
   124 
   125 ML \<open>
   126 "~~~~~ fun xxx, args:"; val () = ();
   127 \<close> ML \<open>
   128 \<close> ML \<open>
   129 \<close>
   130 
   131 ML \<open>
   132   KEStore_Elems.set_ref_thy @{theory};
   133   (*fun autoCalculate' cI auto = autoCalculate cI auto (*|> Future.join*)*);
   134 \<close>
   135 
   136 (*---------------------- check test file by testfile -------------------------------------------
   137   ---------------------- check test file by testfile -------------------------------------------*)
   138 section \<open>trials with Isabelle's functions\<close>
   139   ML \<open>"%%%%%%%%%%%%%%%%% start Isabelle %%%%%%%%%%%%%%%%%%%%%%%";\<close>
   140   ML_file "~~/test/Pure/General/alist.ML"
   141   ML_file "~~/test/Pure/General/basics.ML"
   142   ML_file "~~/test/Pure/General/scan.ML"
   143   ML_file "~~/test/Pure/PIDE/xml.ML"
   144   ML \<open>"%%%%%%%%%%%%%%%%% end Isabelle %%%%%%%%%%%%%%%%%%%%%%%%%";\<close>
   145 
   146 section \<open>test ML Code of isac\<close>
   147 subsection \<open>basic code first\<close>
   148   ML \<open>"%%%%%%%%%%%%%%%%% start ProgLang.thy %%%%%%%%%%%%%%%%%%%";\<close>
   149   ML_file "CalcElements/libraryC.sml"
   150   ML_file "CalcElements/calcelems.sml"
   151 (*---------------------- do Minisubpbl before ADDTESTS/All_Ctxt --------------------------------
   152   ---------------------- do Minisubpbl before ADDTESTS/All_Ctxt --------------------------------*)
   153   ML_file "CalcElements/kestore.sml"        (* setup in ADDTEST/accumulate-val/lucas_interpreter.sml*)
   154   ML_file "CalcElements/termC.sml"
   155   ML_file "CalcElements/listC.sml"
   156   ML_file "CalcElements/contextC.sml"
   157   ML_file "ProgLang/calculate.sml"      (* requires setup from calculate.thy                    *)
   158   ML_file "ProgLang/rewrite.sml"
   159   ML_file "ProgLang/scrtools.sml"
   160   ML_file "ProgLang/tools.sml"
   161 (*---------------------- do Minisubpbl before ADDTESTS/All_Ctxt --------------------------------
   162   ---------------------- do Minisubpbl before ADDTESTS/All_Ctxt --------------------------------*)
   163 
   164 subsection \<open>basic functionality on simple example first\<close>
   165   ML_file "Minisubpbl/000-comments.sml"
   166   ML_file "Minisubpbl/100-init-rootpbl.sml"
   167   ML_file "Minisubpbl/150-add-given.sml"
   168   ML_file "Minisubpbl/200-start-method.sml"
   169   ML_file "Minisubpbl/250-Rewrite_Set-from-method.sml"
   170   ML_file "Minisubpbl/300-init-subpbl.sml"
   171   ML_file "Minisubpbl/400-start-meth-subpbl.sml"
   172   ML_file "Minisubpbl/450-Rewrite_Set_Inst.sml"
   173   ML_file "Minisubpbl/490-nxt-Check_Postcond.sml"
   174   ML_file "Minisubpbl/500-met-sub-to-root.sml"
   175   ML_file "Minisubpbl/530-error-Check_Elementwise.sml"
   176   ML_file "Minisubpbl/600-postcond.sml"
   177   ML_file "Minisubpbl/700-interSteps.sml"
   178   ML_file "Minisubpbl/799-complete.sml"
   179 
   180 subsection \<open>further functionality alongside batch build sequence\<close>
   181   ML_file "Specify/mstools.sml"
   182   ML_file "Specify/specification-elems.sml"
   183   ML_file "Specify/ctree.sml"         (*!...!see(25)*)
   184   ML_file "Specify/ptyps.sml"         (* requires setup from ptyps.thy *)
   185   ML \<open>(*check_unsynchronized_ref (); ==== trick on error: CUT AND PASTE THIS LINE =========*)\<close>
   186   ML_file "Specify/generate.sml"
   187   ML_file "Specify/calchead.sml"
   188   ML_file "Specify/appl.sml"          (*complete "WEGEN INTERMED TESTCODE"   *)
   189 
   190   ML_file "Interpret/rewtools.sml"
   191   ML_file "Interpret/script.sml"
   192   ML_file "Interpret/inform.sml"
   193   ML_file "Interpret/lucas-interpreter.sml"
   194 
   195   ML_file "MathEngine/solve.sml"
   196   ML_file "MathEngine/mathengine-stateless.sml"    (*!part. WN130804: +check Interpret/me.sml*)
   197   ML_file "MathEngine/messages.sml"
   198   ML_file "MathEngine/states.sml"
   199 
   200   ML_file "BridgeLibisabelle/mathml.sml"           (*part.*)
   201   ML_file "BridgeLibisabelle/datatypes.sml"        (*TODO/part.*)
   202   ML_file "BridgeLibisabelle/pbl-met-hierarchy.sml"(*TODO after 2009-2/part.*)
   203   ML_file "BridgeLibisabelle/thy-hierarchy.sml"
   204   ML_file "BridgeLibisabelle/interface-xml.sml"     (*TODO after 2009-2*)
   205   ML_file "BridgeLibisabelle/interface.sml"
   206 (*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
   207   ... SAME ERROR HERE ON ISABELLE2012 AS IN ISAC ON ISABELLE2011*)
   208 
   209   ML_file "Knowledge/delete.sml"
   210   ML_file "Knowledge/descript.sml"
   211   ML_file "Knowledge/atools.sml"
   212   ML_file "Knowledge/simplify.sml"
   213   ML_file "Knowledge/poly.sml"
   214   ML_file "Knowledge/gcd_poly_ml.sml"
   215   ML_file "Knowledge/gcd_poly_winkler.sml" (*must be after gcd_poly_ml.sml: redefines functions*)
   216   ML_file "Knowledge/rational.sml"
   217   ML_file "Knowledge/equation.sml"
   218   ML_file "Knowledge/root.sml"
   219   ML_file "Knowledge/lineq.sml"
   220 (*ML_file "Knowledge/rooteq.sml"    some complicated equations not recovered from 2002 *)
   221   ML_file "Knowledge/rateq.sml"            (*exception Size raised "./basis/LibrarySupport.sml")*)
   222   ML_file "Knowledge/rootrat.sml"
   223   ML_file "Knowledge/rootrateq.sml"(*ome complicated equations not recovered from 2002 *)
   224   ML_file "Knowledge/partial_fractions.sml"
   225 (*ML_file "Knowledge/polyeq.sml"             exception Size raised "./basis/LibrarySupport.sml")*)
   226 (*ML_file "Knowledge/rlang.sml"     much to clean up, similar tests in other files     *)
   227   ML_file "Knowledge/calculus.sml"
   228   ML_file "Knowledge/trig.sml"
   229 (*ML_file "Knowledge/logexp.sml"    not included as stuff for presentation of authoring*) 
   230   ML_file "Knowledge/diff.sml"
   231   ML_file "Knowledge/integrate.sml"
   232   ML_file "Knowledge/eqsystem.sml"
   233   ML_file "Knowledge/test.sml"
   234   ML_file "Knowledge/polyminus.sml"
   235   ML_file "Knowledge/vect.sml"
   236   ML_file "Knowledge/diffapp.sml"        (* postponed to dev. specification | TP-prog. *)
   237   ML_file "Knowledge/biegelinie-1.sml"     (* exception Size raised "./basis/LibrarySupport.sml"*)
   238 (*ML_file "Knowledge/biegelinie-2.sml" since Isabelle2017: "exception Size raised" *)
   239   ML_file "Knowledge/biegelinie-3.sml"     (* exception Size raised "./basis/LibrarySupport.sml"*)
   240   ML_file "Knowledge/algein.sml"
   241   ML_file "Knowledge/diophanteq.sml"
   242   ML_file "Knowledge/Inverse_Z_Transform/inverse_z_transform.sml"
   243   ML_file "Knowledge/inssort.sml"
   244   ML_file "Knowledge/isac.sml"
   245   ML_file "Knowledge/build_thydata.sml"
   246 
   247 section \<open>further tests additional to src/.. files\<close>
   248   ML_file "BridgeLibisabelle/use-cases.sml"
   249   ML_file "~~/test/Tools/isac/ADDTESTS/libisabelle/mini-test.sml"
   250   ML_file "~~/test/Tools/isac/ADDTESTS/libisabelle/protocol.sml"
   251 
   252   ML \<open>"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";\<close>
   253   ML \<open>"%%%%%%%%%%%%%%%%% end Test_Isac %%%%%%%%%%%%%%%%%%%%%%%%";\<close>
   254   ML \<open>"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";\<close>
   255 ML \<open>
   256 \<close> ML \<open>
   257 \<close> ML \<open>
   258 \<close>
   259 
   260 section \<open>history of tests\<close>
   261 text \<open>
   262   Systematic regression tests have been introduced to isac development in 2003.
   263   Sanity of the regression tests suffers from updates following Isabelle development,
   264   which mostly exceeded the resources available in isac's development.
   265 
   266   The survey below shall support to efficiently use the tests for isac 
   267   on different Isabelle versions. Conclusion in most cases will be: 
   268 
   269   !!! Use most recent tests or go back to the old notebook
   270       with isac on Isabelle2002. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   271 \<close>
   272 
   273 
   274 subsection \<open>isac on Isabelle2017\<close>
   275 subsubsection \<open>Summary of development\<close>
   276 text \<open>
   277   * Add further signatures, separate structures and cleanup respective files.
   278   * Show feasibility of moving Isac programs to partial_function, i.e. to the function package.
   279   * Clean theory dependencies.
   280   * Start preparing shift from isac-java to Isabelle/jEdit.
   281 \<close>
   282 subsubsection \<open>State of tests: unchanged\<close>
   283 subsubsection \<open>Changesets of begin and end\<close>
   284 text \<open>
   285   last changeset with Test_Isac 925fef0f4c81
   286   first changeset with Test_Isac bbb414976dfe
   287 \<close>
   288 
   289 subsection \<open>isac on Isabelle2015\<close>
   290 subsubsection \<open>Summary of development\<close>
   291 text \<open>
   292   * Add signatures from top of thy-hierarchy down to Interpret (not ProgLang).
   293     This complicates Test_Isac, see "Prepare running tests" above.
   294   * Remove TTY interface.
   295   * Re-activate insertion sort.
   296 \<close>
   297 subsubsection \<open>State of tests: unchanged\<close>
   298 subsubsection \<open>Changesets of begin and end\<close>
   299 text \<open>
   300   last changeset with Test_Isac 2f1b2854927a
   301   first changeset with Test_Isac ???
   302 \<close>
   303 
   304 subsection \<open>isac on Isabelle2014\<close>
   305 subsubsection \<open>Summary of development\<close>
   306 text \<open>
   307   migration from "isabelle tty" --> libisabelle
   308 \<close>
   309 
   310 subsection \<open>isac on Isabelle2013-2\<close>
   311 subsubsection \<open>Summary of development\<close>
   312 text \<open>
   313   reactivated context_thy
   314 \<close>
   315 subsubsection \<open>State of tests\<close>
   316 text \<open>
   317   TODO
   318 \<close>
   319 subsubsection \<open>Changesets of begin and end\<close>
   320 text \<open>
   321   TODO
   322   :
   323   : isac on Isablle2013-2
   324   :
   325   Changeset: 55318 (03826ceb24da) merged
   326   User: Walther Neuper <neuper@ist.tugraz.at>
   327   Date: 2013-12-12 14:27:37 +0100 (7 minutes)
   328 \<close>
   329 
   330 subsection \<open>isac on Isabelle2013-1\<close>
   331 subsubsection \<open>Summary of development\<close>
   332 text \<open>
   333   Isabelle2013-1 was replaced within a few weeks due to problems with the document model;
   334   no significant development steps for ISAC.
   335 \<close>
   336 subsubsection \<open>State of tests\<close>
   337 text \<open>
   338   See points in subsection "isac on Isabelle2011", "State of tests".
   339 \<close>
   340 subsubsection \<open>Changesets of begin and end\<close>
   341 text \<open>
   342   Changeset: 55283 (d6e9a34e7142) notes for resuming work on Polynomial.thy
   343   User: Walther Neuper <neuper@ist.tugraz.at>
   344   Date: 2013-12-03 18:13:31 +0100 (8 days)
   345   :
   346   : isac on Isablle2013-1
   347   :
   348   Changeset: 55279 (130688f277ba) Isabelle2013 --> 2013-1: Test_Isac perfect
   349   User: Walther Neuper <neuper@ist.tugraz.at>
   350   Date: 2013-11-21 18:12:17 +0100 (2 weeks)
   351 
   352 \<close>
   353 
   354 subsection \<open>isac on Isabelle2013\<close>
   355 subsubsection \<open>Summary of development\<close>
   356 text \<open>
   357   # Oct.13: replaced "axioms" by "axiomatization"
   358   # Oct.13: Mathias Lehnfeld started removing Unsynchornized.ref
   359   # Sep.13: integrated gcd_poly (functional, without Unsychronized.ref) into
   360     simplification of multivariate rationals (without improving the rulesets involved).
   361 \<close>
   362 subsubsection \<open>Run tests\<close>
   363 text \<open>
   364   Is standard now; this subsection will be discontinued under Isabelle2013-1
   365 \<close>
   366 subsubsection \<open>State of tests\<close>
   367 text \<open>
   368   See points in subsection "isac on Isabelle2011", "State of tests".
   369   # re-activated listC.sml
   370 \<close>
   371 subsubsection \<open>Changesets of begin and end\<close>
   372 text \<open>
   373   changeset 52174:8b055b17bd84 --- removed all code concerned with "castab = Unsynchronized.ref"
   374   User: Mathias Lehnfeld <s1210629013@students.fh-hagenberg.at>
   375   Date: Tue Nov 19 22:23:30 2013 +0000
   376   :
   377   : isac on Isablle2013 
   378   :
   379   Changeset: 52061 (4ecea2fcdc2c) --- Build_Isac.thy runs on Isabelle2013
   380   User: Walther Neuper <neuper@ist.tugraz.at>
   381   Date: 2013-07-15 08:28:50 +0200 (4 weeks)
   382 \<close>
   383 
   384 subsection \<open>isac on Isabelle2012\<close>
   385 subsubsection \<open>Summary of development\<close>
   386 text \<open>
   387   isac on Isabelle2012 is considered just a transitional stage
   388   within the update from Isabelle2011 to Isabelle2013; thus no further development of isac;
   389   For considerations on the transition see 
   390   ~~/src/Tools/isac/Knowledge/Build_Thydata/thy, section "updating isac..".
   391 \<close>
   392 subsubsection \<open>Run tests\<close>
   393 text \<open>
   394 $ cd /usr/local/isabisac12/
   395 $ ./bin/isabelle jedit -l HOL src/Tools/isac/Build_Isac.thy
   396 $ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy
   397 \<close>
   398 subsubsection \<open>State of tests\<close>
   399 text \<open>
   400   At least the tests from isac on Isabelle2011 run again.
   401   However, Test_Isac.thy shows erratic behaviour; no errors are obtained when scrolling 
   402   in parallel with evaluation.
   403 
   404   Counting "error in kernel" for Frontend/interface.sml (the tests considered most significant)
   405   yields 69 hits, some of which were already present before Isabelle2002-->2009-2
   406   (i.e. on the old notebook from 2002).
   407 
   408   Now many tests with (*...=== inhibit exn ...*) give a reason or at least the origin:
   409   # === inhibit exn WN1130621 Isabelle2012-->13 !thehier! === ...see Build_Thydata.thy
   410   # === inhibit exn AK110726 === ...reliable work by Alexander Kargl, most likely go back to 2002
   411   # === inhibit exn WN1130701 broken at Isabelle2002 --> 2009-2 === , most likely go back to 2002
   412   Reasons for outcommented tests are also found in Test_Isac.thy near the respective file.sml.
   413 
   414   Some tests have been re-activated (e.g. error patterns, fill patterns).
   415 \<close>
   416 subsubsection \<open>Changesets of begin and end\<close>
   417 text \<open>
   418   Changeset: 52051 (35751d90365e) end of improving tests for isac on Isabelle2012
   419   User: Walther Neuper <neuper@ist.tugraz.at>
   420   Date: 2013-07-11 16:58:31 +0200 (4 weeks)
   421   :
   422   : isac on Isablle2012 
   423   :
   424   Changeset: 48757 (74eb3dfc33cc) updated src from Isabelle2011 to Isabelle2012
   425   User: Walther Neuper <neuper@ist.tugraz.at>
   426   Date: 2012-09-24 18:35:13 +0200 (8 months)
   427   ------------------------------------------------------------------------------
   428   Changeset: 48756 (7443906996a8) merged
   429   User: Walther Neuper <neuper@ist.tugraz.at>
   430   Date: 2012-09-24 18:15:49 +0200 (8 months)
   431 \<close>
   432 
   433 subsection \<open>isac on Isabelle2011\<close>
   434 subsubsection \<open>Summary of development\<close>
   435 text \<open>
   436   isac's mathematics engine has been extended by two developments:
   437   (1) Isabelle's contexts were introduced by Mathias Lehnfeld
   438   (2) Z_Transform was introduced by Jan Rocnik, which revealed
   439     further errors introduced by (1).
   440   (3) "error patterns" were introduced by Gabriella Daroczy
   441   Regressions tests have been added for all of these.
   442 \<close>
   443 subsubsection \<open>Run tests\<close>
   444 text \<open>
   445   $ cd /usr/local/isabisac11/
   446   $ ./bin/isabelle jedit -l HOL src/Tools/isac/Build_Isac.thy
   447   $ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy
   448 \<close>
   449 subsubsection \<open>State of tests\<close>
   450 text \<open>
   451   Systematic efforts outcommented less significant tests by (*...=== inhibit exn ...*) 
   452   and sometimes give reasons for failing tests.
   453   (*...=== inhibit exn AK...*) was done by Alexander Kargl; this is reliable
   454   work, some of which couldn't be revised (and renamed) by WN and thus survived some time.
   455 
   456   The most signification tests (in particular Frontend/interface.sml) run,
   457   however, many "error in kernel" are not caught by an exception.
   458   ------------------------------------------------------------------------------
   459   After the changeset below Test_Isac worked with check_unsynchronized_ref ():
   460   ------------------------------------------------------------------------------
   461   Changeset: 42457 (ca691a84b81a) PROVISIONALLY MADE TESTS RUN with Unsynchronized.ref
   462   User: Walther Neuper <neuper@ist.tugraz.at>
   463   Date: 2012-08-06 10:38:11 +0200 (11 months)
   464 
   465 
   466   The list below records TODOs while producing an ISAC kernel for 
   467   gdaroczy and jrocnik, wich could NOT be done before all tests are RUNNING
   468   (so to be resumed with Isabelle2013-1):
   469   ############## WNxxxxxx.TODO can be found in sources ##############
   470   --------------------------------------------------------------------------------
   471   WN111013.TODO: lots of cleanup/removal in test/../Test.thy
   472   --------------------------------------------------------------------------------
   473   WN111013.TODO: remove concept around "fun init_form", lots of troubles with 
   474   this special case (see) --- why not nxt = Model_Problem here ? ---
   475   --------------------------------------------------------------------------------
   476   WN111014.TODO calculate_Poly < calculate_Rational < calculate_RootRat, see test/
   477   ... FIRST redesign 
   478   # simplify_* , *_simp_* 
   479   # norm_* 
   480   # calc_* , calculate_*  ... require iteration over all rls ...
   481   ... see --- val rls = calculate_RootRat > calculate_Rational --- CONTINUE !
   482   --------------------------------------------------------------------------------
   483   WN111014.TODO fun prep_rls | !!!use this function in ruleset' := !!!
   484   --------------------------------------------------------------------------------
   485   WN120314 changeset a393bb9f5e9f drops root equations.
   486   see test/Tools/isac/Knowledge/rootrateq.sml 
   487   --------------------------------------------------------------------------------
   488   WN120317.TODO changeset 977788dfed26 dropped rateq:
   489   # test --- repair NO asms from rls RatEq_eliminate --- shows error from 2002
   490   # test --- solve (1/x = 5, x) by me --- and --- x / (x ^ 2 - 6 * x + 9) - ...:    
   491     investigation Check_elementwise stopped due to too much effort finding out,
   492     why Check_elementwise worked in 2002 in spite of the error.
   493   --------------------------------------------------------------------------------
   494   WN120317.TODO postponed test/../ratinal,ratinal2.sml to joint work with dmeindl 
   495   --------------------------------------------------------------------------------
   496   WN120317.TODO found by test --- interSteps for Schalk 299a --- that 
   497     NO test with 'interSteps' is checked properly (with exn on changed behaviour)
   498   --------------------------------------------------------------------------------
   499   WN120317.TODO test --- Matthias Goldgruber 2003 rewrite orders --- has
   500     a newly outcommented test where rewrite_set_ make_polynomial --> NONE
   501   --------------------------------------------------------------------------------
   502   WN120320.TODO check-improve rlsthmsNOTisac:
   503   DONE make test --- old compute rlsthmsNOTisac by eq_thmI'
   504   DONE compare rlsthmsNOTisac in thms-survey-Isa02-Isa09-2.sml .. Isac.thy 
   505   FOUND 120321: Theory.axioms_of doesnt find LENGTH_CONS etc, thus are in Isab
   506   # mark twice thms (in isac + (later) in Isabelle) in Isac.thy
   507   --------------------------------------------------------------------------------
   508   WN120320.TODO rlsthmsNOTisac: replace twice thms ^
   509   --------------------------------------------------------------------------------
   510   WN120320.TODO rlsthmsNOTisac: reconsider design of sym_* thms, see test
   511   --- OLD compute rlsthmsNOTisac by eq_thmID ---: some are in isab, some in isac.
   512   --------------------------------------------------------------------------------
   513   WN120321.TODO rearrange theories:
   514     Knowledge
   515       :
   516       Prog_Expr.thy
   517       ///Descript.thy --> ProgLang
   518       Delete.thy   <--- first_Knowledge_thy (*mv to Prog_Expr.thy*)
   519     ProgLang: restructure Build_Isac.thy such that no xmlsrc.thy, ProgLang.thy
   520           Interpret.thy are generated (simplifies xml structure for theories)
   521       Program.thy
   522       Tools.thy
   523       ListC.thy    <--- first_Proglang_thy
   524   --------------------------------------------------------------------------------
   525   WN120321.TODO reanimate test/../simplify.sml: CAS-command Simplify
   526       EXN "simplify.sml: diff.behav. CAScmd: Simplify (2*a + 3*a)"
   527   broken during work on thy-hierarchy
   528   --------------------------------------------------------------------------------
   529   WN120321.TODO LAST in IsacScripts + in IsacKnowledge, see
   530   test --- the_hier (get_thes ()) (collect_thydata ())---
   531   --------------------------------------------------------------------------------
   532   WN120405a.TODO src/../pbl-met-hierarchy.sml: fun pbl2term--> Isac' instead Isac_
   533   !!add mutual crossreferences to ?fun headline??? where the same has to be done:
   534   !!OR BETTER: use only 2 functions for adding/removing "'" to/from thy!!
   535   --------------------------------------------------------------------------------
   536   WN120409.TODO replace "op mem" (2002) with member (2011) ... 
   537   ... an exercise interesting for beginners !
   538   --------------------------------------------------------------------------------
   539   WN120411 scanning html representation of newly generated knowledge:
   540   * thy:
   541   ** Theorems: only "Proof of the theorem" (correct!)
   542                and "(c) isac-team (math-autor)"
   543   ** Rulesets: only "Identifier:///"
   544                and "(c) isac-team (math-autor)"
   545   ** IsacKnowledge: link to dependency graph (which needs to be created first)
   546   ** IsacScripts --> ProgramLanguage
   547   *** Tools: Theorems: arity_type_cp, arity_type_nam, ... wegnehmen
   548   
   549   * pbl: OK !?!
   550   * met: OK !?!
   551   * exp: 
   552   ** Z-Transform is missing !!!
   553   ** type-constraints !!!
   554   --------------------------------------------------------------------------------
   555   WN120417: merging xmldata revealed:
   556   ..............NEWLY generated:........................................
   557   <THEOREMDATA>
   558     <GUH> thy_isab_Fun-thm-o_apply </GUH>
   559     <STRINGLIST>
   560       <STRING> Isabelle </STRING>
   561       <STRING> Fun </STRING>
   562       <STRING> Theorems </STRING>
   563       <STRING> o_apply </STRING>
   564     </STRINGLIST>
   565       <MATHML>
   566         <ISA> (?f o ?g) ?x = ?f (?g ?x) </ISA>
   567       </MATHML>  <PROOF>
   568       <EXTREF>
   569         <TEXT> Proof of the theorem </TEXT>
   570         <URL> http://www.ist.tugraz.at/projects/isac/www/kbase/thy/browser_info/HOL/HOL-Real/Isac/Fun.html </URL>
   571       </EXTREF>
   572     </PROOF>
   573     <EXPLANATIONS> </EXPLANATIONS>
   574     <MATHAUTHORS>
   575       <STRING> Isabelle team, TU Munich </STRING>
   576     </MATHAUTHORS>
   577     <COURSEDESIGNS>
   578     </COURSEDESIGNS>
   579   </THEOREMDATA>
   580   ..............OLD FORMAT:.............................................
   581   <THEOREMDATA>
   582     <GUH> thy_isab_Fun-thm-o_apply </GUH>
   583     <STRINGLIST>
   584       <STRING> Isabelle </STRING>
   585       <STRING> Fun </STRING>
   586       <STRING> Theorems </STRING>
   587       <STRING> o_apply </STRING>
   588     </STRINGLIST>
   589     <THEOREM>
   590       <ID> o_apply </ID>
   591       <MATHML>
   592         <ISA> (?f o ?g) ?x = ?f (?g ?x) </ISA>
   593       </MATHML>
   594     </THEOREM>
   595     <PROOF>
   596       <EXTREF>
   597         <TEXT> Proof of the theorem </TEXT>
   598         <URL> http://www.ist.tugraz.at/projects/isac/www/kbase/thy/browser_info/HOL/HOL-Real/Isac/Fun.html </URL>
   599       </EXTREF>
   600     </PROOF>
   601     <EXPLANATIONS> </EXPLANATIONS>
   602     <MATHAUTHORS>
   603       <STRING> Isabelle team, TU Munich </STRING>
   604     </MATHAUTHORS>
   605     <COURSEDESIGNS>
   606     </COURSEDESIGNS>
   607   </THEOREMDATA>
   608   --------------------------------------------------------------------------------
   609 \<close>
   610 subsubsection \<open>Changesets of begin and end\<close>
   611 text \<open>
   612   isac development was done between these changesets:
   613   ------------------------------------------------------------------------------
   614   Changeset: 42519 (1f3b4270363e) meeting dmeindl: added missing files
   615   User: Walther Neuper <neuper@ist.tugraz.at>
   616   Date: 2012-09-24 16:39:30 +0200 (8 months)
   617   :
   618   : isac on Isablle2011
   619   :
   620   Changeset:41897 (355be7f60389) merged isabisac with Isabelle2011
   621   Branch: decompose-isar 
   622   User: Walther Neuper <neuper@ist.tugraz.at>
   623   Date: 2011-02-25 13:04:56 +0100 (2011-02-25)
   624   ------------------------------------------------------------------------------
   625 \<close>
   626 
   627 subsection \<open>isac on Isabelle2009-2\<close>
   628 subsubsection \<open>Summary of development\<close>
   629 text \<open>
   630   In 2009 the update of isac from Isabelle2002 started with switching from CVS to hg.
   631   The update was painful (bridging 7 years of Isabelle development) and cut short 
   632   due to the start of introducing Isabelle's contexts (Mathias Lehnfeld) and
   633   going on to Isabelle2011 although most of the tests did not run.
   634 \<close>
   635 subsubsection \<open>Run tests\<close>
   636 text \<open>
   637   WN131021 this is broken by installation of Isabelle2011/12/13,
   638   because all these write their binaries to ~/.isabelle/heaps/..
   639 
   640   $ cd /usr/local/isabisac09-2/
   641   $ ./bin/isabelle emacs -l HOL src/Tools/isac/Build_Isac.thy
   642   $ ./bin/isabelle emacs -l Isac src/Tools/isac/Test_Isac.thy
   643   NOT THE RIGHT VERSION.....    test/Tools/isac/Test_Isac.thy !!!
   644 \<close>
   645 subsubsection \<open>State of tests\<close>
   646 text \<open>
   647   Most tests are broken by the update from Isabelle2002 to Isabelle2009-2.
   648 \<close>
   649 subsubsection \<open>Changesets of begin and end\<close>
   650 text \<open>
   651   isac development was done between these changesets:
   652   ------------------------------------------------------------------------------
   653   Changeset: 38115 (940a5feea094) Little improvements of isac-plugin
   654   Branch: decompose-isar 
   655   User: Marco Steger <m.steger@student.tugraz.at>
   656   Date: 2011-02-06 18:30:28 +0100 (2011-02-06)
   657   :
   658   : isac on Isablle2009-2
   659   :
   660   Changeset: 37870 (5100a9c3abf8) created branch isac-from-Isabelle2009-2
   661   Branch: isac-from-Isabelle2009-2 
   662   User: Walther Neuper <neuper@ist.tugraz.at>
   663   Date: 2010-07-21 09:59:35 +0200 (2010-07-21)
   664   ------------------------------------------------------------------------------
   665 \<close>
   666 
   667 subsection \<open>isac on Isabelle2002\<close>
   668 subsubsection \<open>Summary of development\<close>
   669 text \<open>
   670   From 1999 to 2010 all the basic functionality (except "ctxt" and "error pattern")
   671   of isac's mathematics engine has been implemented.
   672 \<close>
   673 subsubsection \<open>Run tests\<close>
   674 subsubsection \<open>State of tests\<close>
   675 text \<open>
   676   All tests work on an old notebook (the right PolyML coudn't be upgraded to more
   677   recent Linux versions)
   678 \<close>
   679 subsubsection \<open>Changesets of begin and end\<close>
   680 text \<open>
   681   Up to the above Mercurial changeset 5100a9c3abf8 isac used CVS;
   682   see https://intra.ist.tugraz.at/hg/isac containing a conversion to Mercurial.
   683 \<close>
   684 
   685 end
   686 (*========== inhibit exn 130719 Isabelle2013 ===================================
   687 ============ inhibit exn 130719 Isabelle2013 =================================*)
   688 
   689 (*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
   690   -.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
   691