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