test/Tools/isac/Test_Isac.thy
author Walther Neuper <neuper@ist.tugraz.at>
Sat, 24 Aug 2013 17:41:40 +0200
changeset 52088 a05261fc089e
parent 52079 0e17ac93bbed
child 52089 7a740eedefc0
permissions -rwxr-xr-x
GCD_Poly_ML: integrated tests, reactivated test/../rational.sml
     1 (* Title:  All tests on isac (some outcommented since Isabelle2002-->2009-2)
     2    Author: Walther Neuper 101001
     3    (c) copyright due to lincense terms.
     4 
     5    isac tests 
     6      in ~~/test/Tools/isac are structured according 
     7      to ~~/src/Tools/isac
     8    Additional tests are in
     9      ~~/test/Tools/isac/ADDTESTS
    10      ~~/test/Tools/isac/Minisubpbl
    11 
    12 $ cd /usr/local/isabisac/
    13 $ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy &
    14 *)
    15 
    16 (*ATTENTION: "Knowledge/biegelinie.sml" NEEDS MANUAL INTERVENTION: 
    17   Tracing paused.  Stop, or continue with next 100, 1000, 10000 messages?*)
    18 
    19 theory Test_Isac imports Isac
    20   "ADDTESTS/Ctxt"
    21   "ADDTESTS/test-depend/Build_Test"
    22   "ADDTESTS/All_Ctxt"
    23   "ADDTESTS/course/phst11/T1_Basics"
    24   "ADDTESTS/course/phst11/T2_Rewriting"
    25   "ADDTESTS/course/phst11/T3_MathEngine"
    26   "ADDTESTS/file-depend/BuildC_Test"
    27   "ADDTESTS/course/SignalProcess/Build_Inverse_Z_Transform"
    28   "~~/test/Pure/Isar/Test_Parsers"
    29 (*"~~/test/Pure/Isar/Pure/Isar/Struct_Deriv" update 2009-2-->2011*)
    30   "~~/test/Pure/Isar/Test_Parse_Term"
    31   "~~/test/HOL/Library/Test_Polynomial"
    32 
    33   "~~/src/Tools/isac/Knowledge/GCD_Poly"    (*not imported by Isac.thy*)
    34   "~~/src/Tools/isac/Knowledge/GCD_Poly_FP" (*not imported by Isac.thy*)
    35 
    36 (* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *)
    37 (* !!!!! wait a minute until Isac and the above theories are loaded !!!!! *)
    38 (* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *)
    39 
    40 begin
    41 section {* test ML Code of isac *}
    42   ML {*"%%%%%%%%%%%%%%%%% start ProgLang.thy %%%%%%%%%%%%%%%%%%%";*}
    43   ML_file          "library.sml"
    44   ML_file          "calcelems.sml"
    45   ML_file "ProgLang/termC.sml"
    46   ML_file "ProgLang/calculate.sml"
    47   ML_file "ProgLang/rewrite.sml"
    48 (*ML_file "ProgLang/listC.sml"            2002*)
    49   ML_file "ProgLang/scrtools.sml"
    50   ML_file "ProgLang/tools.sml"
    51   ML {*"%%%%%%%%%%%%%%%%% end ProgLang.thy %%%%%%%%%%%%%%%%%%%%%";*}
    52   ML {*"%%%%%%%%%%%%%%%%% start Minisubpbl %%%%%%%%%%%%%%%%%%%%%";*}
    53   ML_file "Minisubpbl/000-comments.sml"
    54   ML_file "Minisubpbl/100-init-rootpbl.sml"
    55   ML_file "Minisubpbl/150-add-given.sml"
    56   ML_file "Minisubpbl/200-start-method.sml"
    57   ML_file "Minisubpbl/300-init-subpbl.sml"
    58   ML_file "Minisubpbl/400-start-meth-subpbl.sml"
    59   ML_file "Minisubpbl/490-nxt-Check_Postcond.sml"
    60   ML_file "Minisubpbl/500-met-sub-to-root.sml"
    61   ML_file "Minisubpbl/530-error-Check_Elementwise.sml"
    62   ML_file "Minisubpbl/600-postcond.sml"
    63   ML {*"%%%%%%%%%%%%%%%%% end Minisubpbl.thy %%%%%%%%%%%%%%%%%%%%%%%";*}
    64   ML {*"%%%%%%%%%%%%%%%%% start Interpret.thy %%%%%%%%%%%%%%%%%%";*}
    65   ML_file "Interpret/mstools.sml"
    66   ML_file "Interpret/ctree.sml"         (*!...!see(25)*)
    67   ML_file "Interpret/ptyps.sml"
    68   ML {* (*check_unsynchronized_ref (); ==== trick on error: CUT AND PASTE THIS LINE =========*) *}
    69 (*TRICK DOESN'T WORK: get_pbt not found: ["IsacKnowledge","Diff","Theorems","diff_sin_chain"]*)
    70   ML_file "Interpret/generate.sml"
    71 (*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
    72   ... SAME ERROR HERE ON ISABELLE2012 AS IN ISAC ON ISABELLE2011*)
    73   ML_file "Interpret/calchead.sml"
    74   ML_file "Interpret/appl.sml"          (*complete "WEGEN INTERMED TESTCODE"                          *)
    75   ML_file "Interpret/rewtools.sml"      (*complete, isac's Context broken at 2009-2 --> 2011, thehier!*)
    76   ML_file "Interpret/script.sml"
    77   ML_file "Interpret/solve.sml"
    78   ML_file "Interpret/inform.sml"
    79 (*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
    80   ... SAME ERROR HERE ON ISABELLE2012 AS IN ISAC ON ISABELLE2011*)
    81   ML_file "Interpret/mathengine.sml"    (*!part.*)
    82   ML {*"%%%%%%%%%%%%%%%%% end Interpret.thy %%%%%%%%%%%%%%%%%%%%";*}
    83   ML {*"%%%%%%%%%%%%%%%%% start xmlsrc.thy %%%%%%%%%%%%%%%%%%%%%";*}
    84   ML_file "xmlsrc/mathml.sml"           (*part.*)
    85   ML_file "xmlsrc/datatypes.sml"        (*TODO/part.*)
    86   ML_file "xmlsrc/pbl-met-hierarchy.sml"(*TODO after 2009-2/part.*)
    87 (*ML_file "xmlsrc/thy-hierarchy.sml"      TODO after 2009-2/part | Isabelle2012-->13 !thehier! *)
    88 (*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
    89 val it = "----------- ### thes2file ... Exception- Match raised -----------": string
    90 :
    91 val it = "~~~~~ fun thes2file, args:": string
    92 val p = "../../tmp/": path
    93 val it = (): unit
    94  exception Bind raised (line 359 of "~~/test/Tools/isac/xmlsrc/thy-hierarchy.sml")
    95                                                  ...CONCERNED WITH thehier
    96 *)
    97   ML_file "xmlsrc/interface-xml.sml"     (*TODO after 2009-2*)
    98   ML {*"%%%%%%%%%%%%%%%%% end xmlsrc.thy %%%%%%%%%%%%%%%%%%%%%%%";*}
    99   ML {*"%%%%%%%%%%%%%%%%% start Frontend.thy %%%%%%%%%%%%%%%%%%%";*}
   100   ML_file "Frontend/messages.sml"
   101   ML_file "Frontend/states.sml"
   102   ML_file "Frontend/interface.sml"
   103 (*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
   104   ... SAME ERROR HERE ON ISABELLE2012 AS IN ISAC ON ISABELLE2011*)
   105   ML_file          "print_exn_G.sml"
   106   ML {*"%%%%%%%%%%%%%%%%% end Frontend.thy %%%%%%%%%%%%%%%%%%%%%";*}
   107   ML {*"%%%%%%%%%%%%%%%%% start Knowledge %%%%%%%%%%%%%%%%%%%%%%";*}
   108   ML_file "Knowledge/delete.sml"
   109   ML_file "Knowledge/descript.sml"
   110   ML_file "Knowledge/atools.sml"
   111   ML_file "Knowledge/simplify.sml"
   112   ML_file "Knowledge/poly.sml"
   113   ML_file "Knowledge/gcd_poly_ml.sml"
   114   ML_file "Knowledge/gcd_poly_winkler.sml" (*must be after gcd_poly_ml.sml: redefines functions*)
   115   ML_file "Knowledge/rational.sml"
   116   ML_file "Knowledge/equation.sml"
   117   ML_file "Knowledge/root.sml"
   118   ML_file "Knowledge/lineq.sml"
   119 (*ML_file "Knowledge/rooteq.sml"    some complicated equations not recovered from 2002 *)
   120   ML_file "Knowledge/rateq.sml"   (*some complicated equations not recovered from 2002 *)
   121   ML_file "Knowledge/rootrat.sml"
   122   ML_file "Knowledge/rootrateq.sml"(*ome complicated equations not recovered from 2002 *)
   123   ML_file "Knowledge/partial_fractions.sml"
   124   ML_file "Knowledge/polyeq.sml"
   125 (*ML_file "Knowledge/rlang.sml"     much to clean up, not urgent due to similar tests  *)
   126   ML_file "Knowledge/calculus.sml"
   127   ML_file "Knowledge/trig.sml"
   128 (*ML_file "Knowledge/logexp.sml"    not included as stuff for presentation of authoring*) 
   129   ML_file "Knowledge/diff.sml"
   130   ML_file "Knowledge/integrate.sml"
   131   ML_file "Knowledge/eqsystem.sml"
   132   ML_file "Knowledge/test.sml"
   133   ML_file "Knowledge/polyminus.sml"
   134   ML_file "Knowledge/vect.sml"
   135   ML_file "Knowledge/diffapp.sml"        (* postponed to dev. specification | TP-prog. *)
   136   ML_file "Knowledge/biegelinie.sml"
   137   ML_file "Knowledge/algein.sml"
   138   ML_file "Knowledge/diophanteq.sml"
   139   ML_file "Knowledge/Inverse_Z_Transform/inverse_z_transform.sml"
   140   ML_file "Knowledge/isac.sml"
   141   ML_file "Knowledge/build_thydata.sml"
   142   ML {*"%%%%%%%%%%%%%%%%% end Knowledge %%%%%%%%%%%%%%%%%%%%%%%%";*}
   143   ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
   144   ML {*"%%%%%%%%%%%%%%%%% all tests successful %%%%%%%%%%%%%%%%%";*}
   145   ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
   146 
   147 section {* history of tests *}
   148 text {*
   149   Systematic regression tests have been introduced to isac development in 2003.
   150   Sanity of the regression test suffered from updates following Isabelle development,
   151   which mostly exceeded the resources available in isac's development.
   152 
   153   The survey below shall support to efficiently use the tests for isac 
   154   on different Isabelle versions. Conclusion in most cases will be: 
   155 
   156   !!! Use most recent tests or go back to the old notebook
   157       with isac on Isabelle2002. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   158 *}
   159 
   160 subsection {* isac on Isabelle2013 *}
   161 subsubsection {* Summary of development *}
   162 text {*
   163 *}
   164 subsubsection {* Run tests *}
   165 text {*
   166 *}
   167 subsubsection {* State of tests *}
   168 text {*
   169 *}
   170 subsubsection {* Changesets of begin and end *}
   171 text {*
   172   TODO
   173   :
   174   : isac on Isablle2013 
   175   :
   176   Changeset: 52061 (4ecea2fcdc2c) --- Build_Isac.thy runs on Isabelle2013
   177   User: Walther Neuper <neuper@ist.tugraz.at>
   178   Date: 2013-07-15 08:28:50 +0200 (4 weeks)
   179 *}
   180 
   181 subsection {* isac on Isabelle2012 *}
   182 subsubsection {* Summary of development *}
   183 text {*
   184   isac on Isabelle2012 is considered just a transitional stage
   185   within the update from Isabelle2011 to Isabelle2013; thus no further development of isac;
   186   For considerations on the transition see 
   187   ~~/src/Tools/isac/Knowledge/Build_Thydata/thy, section "updating isac..".
   188 *}
   189 subsubsection {* Run tests *}
   190 text {*
   191 $ cd /usr/local/isabisac12/
   192 $ ./bin/isabelle jedit -l HOL src/Tools/isac/Build_Isac.thy
   193 $ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy
   194 *}
   195 subsubsection {* State of tests *}
   196 text {*
   197   At least the tests from isac on Isabelle2011 run again.
   198   However, Test_Isac.thy shows erratic behaviour; no errors are obtained when scrolling 
   199   in parallel with evaluation.
   200 
   201   Counting "error in kernel" for Frontend/interface.sml (the tests considered most significant)
   202   yields 69 hits, some of which were already present before Isabelle2002-->2009-2
   203   (i.e. on the old notebook from 2002).
   204 
   205   Now many tests with (*...=== inhibit exn ...*) give a reason or at least the origin:
   206   # === inhibit exn WN1130621 Isabelle2012-->13 !thehier! === ...see Build_Thydata.thy
   207   # === inhibit exn AK110726 === ...reliable work by Alexander Kargl, most likely go back to 2002
   208   # === inhibit exn WN1130701 broken at Isabelle2002 --> 2009-2 === , most likely go back to 2002
   209   Reasons for outcommented tests are also found in Test_Isac.thy near the respective file.sml.
   210 
   211   Some tests have been re-activated (e.g. error patterns, fill patterns).
   212 *}
   213 subsubsection {* Changesets of begin and end *}
   214 text {*  
   215   Changeset: 52051 (35751d90365e) end of improving tests for isac on Isabelle2012
   216   User: Walther Neuper <neuper@ist.tugraz.at>
   217   Date: 2013-07-11 16:58:31 +0200 (4 weeks)
   218   :
   219   : isac on Isablle2012 
   220   :
   221   Changeset: 48757 (74eb3dfc33cc) updated src from Isabelle2011 to Isabelle2012
   222   User: Walther Neuper <neuper@ist.tugraz.at>
   223   Date: 2012-09-24 18:35:13 +0200 (8 months)
   224   ------------------------------------------------------------------------------
   225   Changeset: 48756 (7443906996a8) merged
   226   User: Walther Neuper <neuper@ist.tugraz.at>
   227   Date: 2012-09-24 18:15:49 +0200 (8 months)
   228 *}
   229 
   230 subsection {* isac on Isabelle2011 *}
   231 subsubsection {* Summary of development *}
   232 text {*
   233   isac's mathematics engine has been extended by two developments:
   234   (1) Isabelle's contexts were introduced by Mathias Lehnfeld
   235   (2) "error patterns" were introduced by Gabriella Daroczy
   236   Regressions tests have been added for both.
   237 *}
   238 subsubsection {* Run tests *}
   239 text {*
   240   $ cd /usr/local/isabisac11/
   241   $ ./bin/isabelle jedit -l HOL src/Tools/isac/Build_Isac.thy
   242   $ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy
   243 *}
   244 subsubsection {* State of tests *}
   245 text {* 
   246   Systematic efforts outcommented less significant tests by (*...=== inhibit exn ...*) 
   247   and sometimes give reasons for failing tests.
   248   (*...=== inhibit exn AK...*) was done by Alexander Kargl; this is reliable
   249   work, some of which couldn't be revised (and renamed) by WN and thus survived some time.
   250 
   251   Tests with functions decomposed for single-stepping are marked with
   252   "~~~~~ fun , args:"; val 
   253 
   254   The most signification tests (in particular Frontend/interface.sml) run,
   255   however, many "error in kernel" are not caught by an exception.
   256   ------------------------------------------------------------------------------
   257   After the changeset below Test_Isac worked with check_unsynchronized_ref ():
   258   ------------------------------------------------------------------------------
   259   Changeset: 42457 (ca691a84b81a) PROVISIONALLY MADE TESTS RUN with Unsynchronized.ref
   260   User: Walther Neuper <neuper@ist.tugraz.at>
   261   Date: 2012-08-06 10:38:11 +0200 (11 months)
   262 *}
   263 subsubsection {* Changesets of begin and end *}
   264 text {*
   265   isac development was done between these changesets:
   266   ------------------------------------------------------------------------------
   267   Changeset: 42519 (1f3b4270363e) meeting dmeindl: added missing files
   268   User: Walther Neuper <neuper@ist.tugraz.at>
   269   Date: 2012-09-24 16:39:30 +0200 (8 months)
   270   :
   271   : isac on Isablle2011
   272   :
   273   Changeset:41897 (355be7f60389) merged isabisac with Isabelle2011
   274   Branch: decompose-isar 
   275   User: Walther Neuper <neuper@ist.tugraz.at>
   276   Date: 2011-02-25 13:04:56 +0100 (2011-02-25)
   277   ------------------------------------------------------------------------------
   278 *}
   279 
   280 subsection {* isac on Isabelle2009-2 *}
   281 subsubsection {* Summary of development *}
   282 text {*
   283   In 2009 the update of isac from Isabelle2002 started with switching from CVS to hg.
   284   The update was painful (bridging 7 years of Isabelle development) and cut short 
   285   due to the start of introducing Isabelle's contexts (Mathias Lehnfeld) and
   286   going on to Isabelle2011 although most of the tests did not run.
   287 *}
   288 subsubsection {* Run tests *}
   289 text {*
   290   $ cd /usr/local/isabisac09-2/
   291   $ ./bin/isabelle emacs -l HOL src/Tools/isac/Build_Isac.thy
   292   $ ./bin/isabelle emacs -l Isac src/Tools/isac/Test_Isac.thy
   293   NOT THE RIGHT VERSION.....    test/Tools/isac/Test_Isac.thy !!!
   294 *}
   295 subsubsection {* State of tests *}
   296 text {* 
   297   Most tests are broken by the update from Isabelle2002 to Isabelle2009-2.
   298   If really necessary, go back to the old notebook with Isabelle2002.
   299 *}
   300 subsubsection {* Changesets of begin and end *}
   301 text {*
   302   isac development was done between these changesets:
   303   ------------------------------------------------------------------------------
   304   Changeset: 38115 (940a5feea094) Little improvements of isac-plugin
   305   Branch: decompose-isar 
   306   User: Marco Steger <m.steger@student.tugraz.at>
   307   Date: 2011-02-06 18:30:28 +0100 (2011-02-06)
   308   :
   309   : isac on Isablle2009-2
   310   :
   311   Changeset: 37870 (5100a9c3abf8) created branch isac-from-Isabelle2009-2
   312   Branch: isac-from-Isabelle2009-2 
   313   User: Walther Neuper <neuper@ist.tugraz.at>
   314   Date: 2010-07-21 09:59:35 +0200 (2010-07-21)
   315   ------------------------------------------------------------------------------
   316 *}
   317 
   318 subsection {* isac on Isabelle2002 *}
   319 subsubsection {* Summary of development *}
   320 text {*
   321   From 1999 to 2010 all the basic functionality (except "ctxt" and "error pattern")
   322   of isac's mathematics engine has been implemented.
   323 *}
   324 subsubsection {* Run tests *}
   325 subsubsection {* State of tests *}
   326 text {* 
   327   All tests work on an old notebook (the right PolyML coudn't be upgraded to more
   328   recent Linux versions)
   329 *}
   330 subsubsection {* Changesets of begin and end *}
   331 text {*
   332   Up to the above Mercurial changeset 5100a9c3abf8 isac used CVS;
   333   see https://intra.ist.tugraz.at/hg/isac containing a conversion to Mercurial.
   334 *}
   335 
   336 end
   337 (*========== inhibit exn 130719 Isabelle2013 ===================================
   338 ============ inhibit exn 130719 Isabelle2013 =================================*)
   339 
   340 (*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
   341   -.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
   342