test/Tools/isac/Test_Isac.thy
author Walther Neuper <neuper@ist.tugraz.at>
Mon, 16 Sep 2013 12:20:00 +0200
changeset 52105 2786cc9704c8
parent 52102 cd5494eb08fd
child 52106 7f3760f39bdc
permissions -rwxr-xr-x
Test_Isac works again, perfectly ..

# the same tests works as in 8df4b6196660 (the *child* of "Test_Isac works...")
# ..EXCEPT those marked with "exception Div raised"
# for general state of tests see Test_Isac section {* history of tests *}.
     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 (*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
   101   ... SAME ERROR HERE ON ISABELLE2012 AS IN ISAC ON ISABELLE2011*)
   102   ML_file          "print_exn_G.sml"
   103   ML {*"%%%%%%%%%%%%%%%%% end Frontend.thy %%%%%%%%%%%%%%%%%%%%%";*}
   104   ML {*"%%%%%%%%%%%%%%%%% start Knowledge %%%%%%%%%%%%%%%%%%%%%%";*}
   105   ML_file "Knowledge/delete.sml"
   106   ML_file "Knowledge/descript.sml"
   107   ML_file "Knowledge/atools.sml"
   108   ML_file "Knowledge/simplify.sml"
   109   ML_file "Knowledge/poly.sml"
   110   ML_file "Knowledge/gcd_poly_ml.sml"
   111   ML_file "Knowledge/gcd_poly_winkler.sml" (*must be after gcd_poly_ml.sml: redefines functions*)
   112   ML_file "Knowledge/rational.sml"
   113   ML_file "Knowledge/equation.sml"
   114   ML_file "Knowledge/root.sml"
   115   ML_file "Knowledge/lineq.sml"
   116 (*ML_file "Knowledge/rooteq.sml"    some complicated equations not recovered from 2002 *)
   117   ML_file "Knowledge/rateq.sml"   (*some complicated equations not recovered from 2002 *)
   118   ML_file "Knowledge/rootrat.sml"
   119   ML_file "Knowledge/rootrateq.sml"(*ome complicated equations not recovered from 2002 *)
   120   ML_file "Knowledge/partial_fractions.sml"
   121   ML_file "Knowledge/polyeq.sml"
   122 (*ML_file "Knowledge/rlang.sml"     much to clean up, similar tests in other files     *)
   123   ML_file "Knowledge/calculus.sml"
   124   ML_file "Knowledge/trig.sml"
   125 (*ML_file "Knowledge/logexp.sml"    not included as stuff for presentation of authoring*) 
   126   ML_file "Knowledge/diff.sml"
   127   ML_file "Knowledge/integrate.sml"
   128   ML_file "Knowledge/eqsystem.sml"
   129   ML_file "Knowledge/test.sml"
   130   ML_file "Knowledge/polyminus.sml"
   131   ML_file "Knowledge/vect.sml"
   132   ML_file "Knowledge/diffapp.sml"        (* postponed to dev. specification | TP-prog. *)
   133   ML_file "Knowledge/biegelinie.sml"
   134   ML_file "Knowledge/algein.sml"
   135   ML_file "Knowledge/diophanteq.sml"
   136   ML_file "Knowledge/Inverse_Z_Transform/inverse_z_transform.sml"
   137   ML_file "Knowledge/isac.sml"
   138   ML_file "Knowledge/build_thydata.sml"
   139   ML {*"%%%%%%%%%%%%%%%%% end Knowledge %%%%%%%%%%%%%%%%%%%%%%%%";*}
   140   ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
   141 
   142 section {* history of tests *}
   143 text {*
   144   Systematic regression tests have been introduced to isac development in 2003.
   145   Sanity of the regression test suffered from updates following Isabelle development,
   146   which mostly exceeded the resources available in isac's development.
   147 
   148   The survey below shall support to efficiently use the tests for isac 
   149   on different Isabelle versions. Conclusion in most cases will be: 
   150 
   151   !!! Use most recent tests or go back to the old notebook
   152       with isac on Isabelle2002. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   153 *}
   154 
   155 subsection {* isac on Isabelle2013 *}
   156 subsubsection {* Summary of development *}
   157 text {*
   158 *}
   159 subsubsection {* Run tests *}
   160 text {*
   161 *}
   162 subsubsection {* State of tests *}
   163 text {*
   164 *}
   165 subsubsection {* Changesets of begin and end *}
   166 text {*
   167   TODO
   168   :
   169   : isac on Isablle2013 
   170   :
   171   Changeset: 52061 (4ecea2fcdc2c) --- Build_Isac.thy runs on Isabelle2013
   172   User: Walther Neuper <neuper@ist.tugraz.at>
   173   Date: 2013-07-15 08:28:50 +0200 (4 weeks)
   174 *}
   175 
   176 subsection {* isac on Isabelle2012 *}
   177 subsubsection {* Summary of development *}
   178 text {*
   179   isac on Isabelle2012 is considered just a transitional stage
   180   within the update from Isabelle2011 to Isabelle2013; thus no further development of isac;
   181   For considerations on the transition see 
   182   ~~/src/Tools/isac/Knowledge/Build_Thydata/thy, section "updating isac..".
   183 *}
   184 subsubsection {* Run tests *}
   185 text {*
   186 $ cd /usr/local/isabisac12/
   187 $ ./bin/isabelle jedit -l HOL src/Tools/isac/Build_Isac.thy
   188 $ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy
   189 *}
   190 subsubsection {* State of tests *}
   191 text {*
   192   At least the tests from isac on Isabelle2011 run again.
   193   However, Test_Isac.thy shows erratic behaviour; no errors are obtained when scrolling 
   194   in parallel with evaluation.
   195 
   196   Counting "error in kernel" for Frontend/interface.sml (the tests considered most significant)
   197   yields 69 hits, some of which were already present before Isabelle2002-->2009-2
   198   (i.e. on the old notebook from 2002).
   199 
   200   Now many tests with (*...=== inhibit exn ...*) give a reason or at least the origin:
   201   # === inhibit exn WN1130621 Isabelle2012-->13 !thehier! === ...see Build_Thydata.thy
   202   # === inhibit exn AK110726 === ...reliable work by Alexander Kargl, most likely go back to 2002
   203   # === inhibit exn WN1130701 broken at Isabelle2002 --> 2009-2 === , most likely go back to 2002
   204   Reasons for outcommented tests are also found in Test_Isac.thy near the respective file.sml.
   205 
   206   Some tests have been re-activated (e.g. error patterns, fill patterns).
   207 *}
   208 subsubsection {* Changesets of begin and end *}
   209 text {*  
   210   Changeset: 52051 (35751d90365e) end of improving tests for isac on Isabelle2012
   211   User: Walther Neuper <neuper@ist.tugraz.at>
   212   Date: 2013-07-11 16:58:31 +0200 (4 weeks)
   213   :
   214   : isac on Isablle2012 
   215   :
   216   Changeset: 48757 (74eb3dfc33cc) updated src from Isabelle2011 to Isabelle2012
   217   User: Walther Neuper <neuper@ist.tugraz.at>
   218   Date: 2012-09-24 18:35:13 +0200 (8 months)
   219   ------------------------------------------------------------------------------
   220   Changeset: 48756 (7443906996a8) merged
   221   User: Walther Neuper <neuper@ist.tugraz.at>
   222   Date: 2012-09-24 18:15:49 +0200 (8 months)
   223 *}
   224 
   225 subsection {* isac on Isabelle2011 *}
   226 subsubsection {* Summary of development *}
   227 text {*
   228   isac's mathematics engine has been extended by two developments:
   229   (1) Isabelle's contexts were introduced by Mathias Lehnfeld
   230   (2) "error patterns" were introduced by Gabriella Daroczy
   231   Regressions tests have been added for both.
   232 *}
   233 subsubsection {* Run tests *}
   234 text {*
   235   $ cd /usr/local/isabisac11/
   236   $ ./bin/isabelle jedit -l HOL src/Tools/isac/Build_Isac.thy
   237   $ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy
   238 *}
   239 subsubsection {* State of tests *}
   240 text {* 
   241   Systematic efforts outcommented less significant tests by (*...=== inhibit exn ...*) 
   242   and sometimes give reasons for failing tests.
   243   (*...=== inhibit exn AK...*) was done by Alexander Kargl; this is reliable
   244   work, some of which couldn't be revised (and renamed) by WN and thus survived some time.
   245 
   246   Tests with functions decomposed for single-stepping are marked with
   247   "~~~~~ fun , args:"; val 
   248 
   249   The most signification tests (in particular Frontend/interface.sml) run,
   250   however, many "error in kernel" are not caught by an exception.
   251   ------------------------------------------------------------------------------
   252   After the changeset below Test_Isac worked with check_unsynchronized_ref ():
   253   ------------------------------------------------------------------------------
   254   Changeset: 42457 (ca691a84b81a) PROVISIONALLY MADE TESTS RUN with Unsynchronized.ref
   255   User: Walther Neuper <neuper@ist.tugraz.at>
   256   Date: 2012-08-06 10:38:11 +0200 (11 months)
   257 *}
   258 subsubsection {* Changesets of begin and end *}
   259 text {*
   260   isac development was done between these changesets:
   261   ------------------------------------------------------------------------------
   262   Changeset: 42519 (1f3b4270363e) meeting dmeindl: added missing files
   263   User: Walther Neuper <neuper@ist.tugraz.at>
   264   Date: 2012-09-24 16:39:30 +0200 (8 months)
   265   :
   266   : isac on Isablle2011
   267   :
   268   Changeset:41897 (355be7f60389) merged isabisac with Isabelle2011
   269   Branch: decompose-isar 
   270   User: Walther Neuper <neuper@ist.tugraz.at>
   271   Date: 2011-02-25 13:04:56 +0100 (2011-02-25)
   272   ------------------------------------------------------------------------------
   273 *}
   274 
   275 subsection {* isac on Isabelle2009-2 *}
   276 subsubsection {* Summary of development *}
   277 text {*
   278   In 2009 the update of isac from Isabelle2002 started with switching from CVS to hg.
   279   The update was painful (bridging 7 years of Isabelle development) and cut short 
   280   due to the start of introducing Isabelle's contexts (Mathias Lehnfeld) and
   281   going on to Isabelle2011 although most of the tests did not run.
   282 *}
   283 subsubsection {* Run tests *}
   284 text {*
   285   $ cd /usr/local/isabisac09-2/
   286   $ ./bin/isabelle emacs -l HOL src/Tools/isac/Build_Isac.thy
   287   $ ./bin/isabelle emacs -l Isac src/Tools/isac/Test_Isac.thy
   288   NOT THE RIGHT VERSION.....    test/Tools/isac/Test_Isac.thy !!!
   289 *}
   290 subsubsection {* State of tests *}
   291 text {* 
   292   Most tests are broken by the update from Isabelle2002 to Isabelle2009-2.
   293   If really necessary, go back to the old notebook with Isabelle2002.
   294 *}
   295 subsubsection {* Changesets of begin and end *}
   296 text {*
   297   isac development was done between these changesets:
   298   ------------------------------------------------------------------------------
   299   Changeset: 38115 (940a5feea094) Little improvements of isac-plugin
   300   Branch: decompose-isar 
   301   User: Marco Steger <m.steger@student.tugraz.at>
   302   Date: 2011-02-06 18:30:28 +0100 (2011-02-06)
   303   :
   304   : isac on Isablle2009-2
   305   :
   306   Changeset: 37870 (5100a9c3abf8) created branch isac-from-Isabelle2009-2
   307   Branch: isac-from-Isabelle2009-2 
   308   User: Walther Neuper <neuper@ist.tugraz.at>
   309   Date: 2010-07-21 09:59:35 +0200 (2010-07-21)
   310   ------------------------------------------------------------------------------
   311 *}
   312 
   313 subsection {* isac on Isabelle2002 *}
   314 subsubsection {* Summary of development *}
   315 text {*
   316   From 1999 to 2010 all the basic functionality (except "ctxt" and "error pattern")
   317   of isac's mathematics engine has been implemented.
   318 *}
   319 subsubsection {* Run tests *}
   320 subsubsection {* State of tests *}
   321 text {* 
   322   All tests work on an old notebook (the right PolyML coudn't be upgraded to more
   323   recent Linux versions)
   324 *}
   325 subsubsection {* Changesets of begin and end *}
   326 text {*
   327   Up to the above Mercurial changeset 5100a9c3abf8 isac used CVS;
   328   see https://intra.ist.tugraz.at/hg/isac containing a conversion to Mercurial.
   329 *}
   330 
   331 end
   332 (*========== inhibit exn 130719 Isabelle2013 ===================================
   333 ============ inhibit exn 130719 Isabelle2013 =================================*)
   334 
   335 (*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
   336   -.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
   337