state of development Isabelle2002 --> 2011 wrt. test/../Knowledge
authorWalther Neuper <neuper@ist.tugraz.at>
Mon, 19 Mar 2012 09:48:03 +0100
changeset 4239804d3f0133827
parent 42397 4f1cc40522c4
child 42399 c5bb245afb58
state of development Isabelle2002 --> 2011 wrt. test/../Knowledge

?!? test --- test thm rootrat_equation_left_1 --- changed behavior.
src/Tools/isac/Knowledge/Equation.thy
src/Tools/isac/Knowledge/Poly.thy
src/Tools/isac/Knowledge/RatEq.thy
src/Tools/isac/Knowledge/RootEq.thy
src/Tools/isac/Knowledge/RootRatEq.thy
src/Tools/isac/TODO.txt
test/Tools/isac/Knowledge/atools.sml
test/Tools/isac/Knowledge/rootrateq.sml
test/Tools/isac/Test_Some.thy
     1.1 --- a/src/Tools/isac/Knowledge/Equation.thy	Sat Mar 17 13:43:24 2012 +0100
     1.2 +++ b/src/Tools/isac/Knowledge/Equation.thy	Mon Mar 19 09:48:03 2012 +0100
     1.3 @@ -5,6 +5,16 @@
     1.4  
     1.5  theory Equation imports Atools begin
     1.6  
     1.7 +text {* univariate equations over terms :
     1.8 +  In 2003 Richard Lang prototyped ISAC's equation solver while also alpha-testing
     1.9 +  the Lucas-Interpreter's Subproblem mechanism.
    1.10 +  This prototype suffers from the drop-out of Matthias Goldgruber for a year,
    1.11 +  who had started to work on simplification in parallel. So this implementation
    1.12 +  replaced simplifiers by many specific theorems for specific terms in specific
    1.13 +  phases of equation solving; these specific solutions wait for generalisation
    1.14 +  in future improvements of ISAC's equation solver.
    1.15 +*}
    1.16 +
    1.17  consts
    1.18  
    1.19    (*descriptions in the related problems TODOshift here from Descriptions.thy*)
     2.1 --- a/src/Tools/isac/Knowledge/Poly.thy	Sat Mar 17 13:43:24 2012 +0100
     2.2 +++ b/src/Tools/isac/Knowledge/Poly.thy	Mon Mar 19 09:48:03 2012 +0100
     2.3 @@ -1438,7 +1438,17 @@
     2.4        (*asm_thm = [],*)
     2.5        rules = [Rls_ order_add_
     2.6  	       ], scr = EmptyScr}:rls;
     2.7 +*}
     2.8  
     2.9 +text {* rule-set make_polynomial also named norm_Poly:
    2.10 +  Rewrite order has not been implemented properly; the order is better in 
    2.11 +  make_polynomial_in (coded in SML).
    2.12 +  Notes on state of development:
    2.13 +  \# surprise 2006: test --- norm_Poly NOT COMPLETE ---
    2.14 +  \# migration Isabelle2002 --> 2011 weakened the rule set, see test
    2.15 +  --- Matthias Goldgruber 2003 rewrite orders ---, error "ord_make_polynomial_in #16b"
    2.16 +*}
    2.17 +ML {*
    2.18  (*. see MG-DA.p.52ff .*)
    2.19  val make_polynomial(*MG.03, overwrites version from above, 
    2.20      previously 'make_polynomial_'*) =
     3.1 --- a/src/Tools/isac/Knowledge/RatEq.thy	Sat Mar 17 13:43:24 2012 +0100
     3.2 +++ b/src/Tools/isac/Knowledge/RatEq.thy	Mon Mar 19 09:48:03 2012 +0100
     3.3 @@ -9,6 +9,18 @@
     3.4  
     3.5  theory RatEq imports Rational begin
     3.6  
     3.7 +text {* univariate equations over multivariate rational terms:
     3.8 +  In 2003 this type has been integrated into ISAC's equation solver
     3.9 +  by Richard Lang; the root for the solver is Equation.thy.
    3.10 +  The migration Isabelle2002 --> 2011 found that application of theorems like 
    3.11 +  rat_mult_denominator_right: "[|Not(d=0)|] ==> ((a::real) = c / d) = (a*d = c)"
    3.12 +  in rule-sets does not transfer "d ~= 0" to the assumptions; see
    3.13 +  test --- repair NO asms from rls RatEq_eliminate ---.
    3.14 +  Thus the migration dropped update of Check_elementwise, which would require
    3.15 +  these assumptions; see 
    3.16 +  test --- pbl: rational, univariate, equation ---, --- x / (x ^ 2 - 6 * x + 9) - 1 /...
    3.17 +*}
    3.18 +
    3.19  consts
    3.20  
    3.21    is'_ratequation'_in :: "[bool, real] => bool" ("_ is'_ratequation'_in _")
     4.1 --- a/src/Tools/isac/Knowledge/RootEq.thy	Sat Mar 17 13:43:24 2012 +0100
     4.2 +++ b/src/Tools/isac/Knowledge/RootEq.thy	Mon Mar 19 09:48:03 2012 +0100
     4.3 @@ -9,6 +9,16 @@
     4.4  
     4.5  theory RootEq imports Root begin
     4.6  
     4.7 +text {* univariate equations containing real square roots:
     4.8 +  This type of equations has been used to bootstrap Lucas-Interpretation.
     4.9 +  In 2003 this type has been extended and integrated into ISAC's equation solver
    4.10 +  by Richard Lang in 2003.
    4.11 +  The assumptions (all containing "<") didn't pass the xml-parsers at the 
    4.12 +  interface between math-engine and front-end.
    4.13 +  The migration Isabelle2002 --> 2011 dropped this type of equation, see
    4.14 +  test/../rooteq.sml, rootrateq.sml.
    4.15 +*}
    4.16 +
    4.17  consts
    4.18  
    4.19    is'_rootTerm'_in     :: "[real, real] => bool" ("_ is'_rootTerm'_in _")
     5.1 --- a/src/Tools/isac/Knowledge/RootRatEq.thy	Sat Mar 17 13:43:24 2012 +0100
     5.2 +++ b/src/Tools/isac/Knowledge/RootRatEq.thy	Mon Mar 19 09:48:03 2012 +0100
     5.3 @@ -9,6 +9,12 @@
     5.4  
     5.5  theory RootRatEq imports LinEq RootEq RatEq RootRat begin 
     5.6  
     5.7 +text {* univariate equations over rational terms containing real square roots:
     5.8 +  In 2003 this type has been developed as part of ISAC's equation solver
     5.9 +  by Richard Lang in 2003.
    5.10 +  The migration Isabelle2002 --> 2011 dropped this type of equation, see RootEq.thy.
    5.11 +*}
    5.12 +
    5.13  consts
    5.14  
    5.15    is'_rootRatAddTerm'_in :: "[real, real] => bool" 
     6.1 --- a/src/Tools/isac/TODO.txt	Sat Mar 17 13:43:24 2012 +0100
     6.2 +++ b/src/Tools/isac/TODO.txt	Mon Mar 19 09:48:03 2012 +0100
     6.3 @@ -160,7 +160,7 @@
     6.4    investigation Check_elementwise stopped due to too much effort finding out,
     6.5    why Check_elementwise worked in 2002 in spite of the error.
     6.6  --------------------------------------------------------------------------------
     6.7 -WN120317.TODO postponed test/../ratinal,ratinal2.sml to joint work with dmeind 
     6.8 +WN120317.TODO postponed test/../ratinal,ratinal2.sml to joint work with dmeindl 
     6.9  --------------------------------------------------------------------------------
    6.10  WN120317.TODO found by test --- interSteps for Schalk 299a --- that 
    6.11    NO test with 'interSteps' is checked properly (with exn on changed behaviour)
     7.1 --- a/test/Tools/isac/Knowledge/atools.sml	Sat Mar 17 13:43:24 2012 +0100
     7.2 +++ b/test/Tools/isac/Knowledge/atools.sml	Mon Mar 19 09:48:03 2012 +0100
     7.3 @@ -192,12 +192,12 @@
     7.4    val ttt = (term_of o the o (parse thy)) ttt';
     7.5  val SOME (uuu,_) = rewrite_set_inst_ thy false [(bdv,x)] make_polynomial_in ttt;
     7.6  if term2str uuu = "(5 + 3 * x) / 18" then ()
     7.7 -else error "termorder.sml diff.behav ord_make_polynomial_in #16";
     7.8 +else error "termorder.sml diff.behav ord_make_polynomial_in #16a";
     7.9  
    7.10  (*============ inhibit exn WN120316 ==============================================
    7.11 -val SOME (uuu,_) =rewrite_set_ thy false make_polynomial ttt;
    7.12 +val SOME (uuu,_) = rewrite_set_ thy false make_polynomial ttt;
    7.13  if term2str uuu = "(5 + 3 * x) / 18" then ()
    7.14 -else error "termorder.sml diff.behav ord_make_polynomial_in #16";
    7.15 +else error "termorder.sml diff.behav ord_make_polynomial_in #16b";
    7.16  ============ inhibit exn WN120316 ==============================================*)
    7.17  
    7.18  
     8.1 --- a/test/Tools/isac/Knowledge/rootrateq.sml	Sat Mar 17 13:43:24 2012 +0100
     8.2 +++ b/test/Tools/isac/Knowledge/rootrateq.sml	Mon Mar 19 09:48:03 2012 +0100
     8.3 @@ -65,7 +65,14 @@
     8.4  val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
     8.5  val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
     8.6  val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
     8.7 -val (p,_,f,nxt,_,pt) = me nxt p c pt; 
     8.8 +val (p,_,f,nxt,_,pt) = me nxt p c pt;
     8.9 +(*============ inhibit exn WN120319 ==============================================
    8.10 +(*From final Test_Isac.thy we suddenly have
    8.11 +
    8.12 +          nxt = ("Model_Problem", Model_Problem)
    8.13 +
    8.14 +which we did not investigate further due to the decision to drop the whole type of equation.
    8.15 +*)
    8.16  if f2str f = "1 = (0 - -2) * (1 + -1 * sqrt x)" then ()
    8.17  else error "rootrateq.sml: diff.behav. in rootrat_equation_left_1 a";
    8.18  (*-> Subproblem ("RootRatEq", ["sq", "root'", "univariate", "equation"])*)
    8.19 @@ -156,6 +163,7 @@
    8.20  case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 1 / 4]")) => ()
    8.21  	 | _ => error "rootrateq.sml: diff.behav. in  -2 + 1/(1 - sqrt(x))= 0 -> [x = 1/4]";
    8.22  ============ inhibit exn WN120314 ==============================================*)
    8.23 +============ inhibit exn WN120319 ==============================================*)
    8.24  
    8.25  "------------ test thm rootrat_equation_left_2 -------------------";
    8.26  "------------ test thm rootrat_equation_left_2 -------------------";
     9.1 --- a/test/Tools/isac/Test_Some.thy	Sat Mar 17 13:43:24 2012 +0100
     9.2 +++ b/test/Tools/isac/Test_Some.thy	Mon Mar 19 09:48:03 2012 +0100
     9.3 @@ -1,16 +1,16 @@
     9.4   
     9.5  theory Test_Some imports Isac begin
     9.6  
     9.7 -use"../../../test/Tools/isac/Knowledge/atools.sml"
     9.8 +use"../../../test/Tools/isac/Knowledge/rootrateq.sml"
     9.9  
    9.10  ML {*
    9.11 -val thy = @{theory "Atools"};
    9.12 +val thy = @{theory "RootRatEq"};
    9.13  val ctxt = ProofContext.init_global thy;
    9.14 -print_depth 999;
    9.15 +print_depth 555;
    9.16  *}
    9.17  ML {*
    9.18 -
    9.19 -
    9.20 +*}
    9.21 +ML {* (*==================*)
    9.22  *}
    9.23  ML {*
    9.24  *}
    9.25 @@ -29,6 +29,11 @@
    9.26  ML {*
    9.27  "~~~~~ fun , args:"; val () = ();
    9.28  "~~~~~ to  return val:"; val () = ();
    9.29 +
    9.30 +*}
    9.31 +text {**}
    9.32 +ML {*
    9.33 +
    9.34  *}
    9.35  end
    9.36  
    9.37 @@ -40,3 +45,4 @@
    9.38  
    9.39  (*=========================^^^ correct until here ^^^===========================*)
    9.40  
    9.41 +