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