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