test/Tools/isac/OLDTESTS/script_if.sml
author Mathias Lehnfeld <s1210629013@students.fh-hagenberg.at>
Mon, 27 Jan 2014 21:49:27 +0100
changeset 55359 73dc85c025ab
parent 55355 e55f16caf498
child 55363 d78bc1342183
permissions -rw-r--r--
cleanup, naming: 'KEStore_Elems' in Tests now 'Test_KEStore_Elems', 'store_pbts' now 'add_pbts'
neuper@37906
     1
(* 1.if-te-else- 8.02 f"ur Richard
neuper@37906
     2
neuper@37906
     3
   use"ifthenelse.sml";
neuper@37906
     4
   use"tests/rationals2.sml";
neuper@37906
     5
   *)
neuper@37906
     6
neuper@37906
     7
neuper@37906
     8
neuper@37906
     9
(*---------------- 25.7.02 ---------------------*)
neuper@37906
    10
neuper@38050
    11
val thy = (theory "Isac");
neuper@37906
    12
val t = (term_of o the o (parse thy)) "contains_root (sqrt(x)=1)";
neuper@37926
    13
val SOME(ss,tt) = eval_contains_root "xxx" 1 t thy;
neuper@37906
    14
neuper@37906
    15
val t = (term_of o the o (parse thy)) "is_rootequation_in (sqrt(x)=1) x";
neuper@37926
    16
val SOME(ss,tt) = eval_is_rootequation_in "is_rootequation_i" 1 t thy; 
neuper@37906
    17
neuper@37906
    18
(*---
neuper@37906
    19
val v = (term_of o the o (parse thy)) "x";
neuper@37906
    20
val t = (term_of o the o (parse thy)) "sqrt(#3+#4*x)";
neuper@37906
    21
scan t v;
neuper@37906
    22
val t = (term_of o the o (parse thy)) "sqrt(#3+#4*a)";
neuper@37906
    23
scan t v;
neuper@37906
    24
val t = (term_of o the o (parse thy)) "#1 + #2*sqrt(#3+#4*x)";
neuper@37906
    25
scan t v;
neuper@37906
    26
val t = (term_of o the o (parse thy)) "x + #2*sqrt(#3+#4*a)";
neuper@37906
    27
scan t v;
neuper@37906
    28
---*)
neuper@37906
    29
val t = (term_of o the o (parse thy)) 
neuper@37906
    30
	    "is_rootequation_in (1 + 2*sqrt(3+4*x)=0) x";
neuper@37926
    31
val SOME(ss,tt) = eval_is_rootequation_in "is_rootequation_i" 1 t thy; 
neuper@37906
    32
neuper@37906
    33
val t = (term_of o the o (parse thy)) 
neuper@37906
    34
	    "is_rootequation_in (x + 2*sqrt(3+4*a)=0) x";
neuper@37926
    35
val SOME(ss,tt) = eval_is_rootequation_in "is_rootequation_i" 1 t thy; 
neuper@37906
    36
neuper@37906
    37
val t = (term_of o the o (parse Test.thy)) 
neuper@37906
    38
	    "is_rootequation_in (sqrt(x)=1) x";
neuper@37906
    39
atomty t;
neuper@38050
    40
val t = (term_of o the o (parse (theory "Isac"))) 
neuper@37906
    41
	    "is_rootequation_in (sqrt(x)=1) x";
neuper@37906
    42
atomty t;
neuper@37906
    43
neuper@37906
    44
(*
neuper@37926
    45
val SOME(tt,_) = rewrite_set_ Test.thytrue tval_rls t;
neuper@37906
    46
*)
neuper@38050
    47
val SOME(tt,_) = rewrite_set_ (theory "Isac") true tval_rls t;
neuper@37906
    48
neuper@38050
    49
rewrite_set "Isac" true 
neuper@37906
    50
	    "tval_rls" "is_rootequation_in (sqrt(x)=1) x";
neuper@38058
    51
rewrite_set "Test" true 
neuper@37906
    52
	    "tval_rls" "is_rootequation_in (sqrt(x)=1) x";
neuper@37906
    53
neuper@37906
    54
neuper@38050
    55
(*WN: ^^^--- bitte nimm vorerst immer (theory "Isac"), damit wird richtig gematcht, 
neuper@37906
    56
  siehe unten. Wir werden w"ahrend der Arbeit auf diesen Fehler drauskommen*)
neuper@37906
    57
store_pbt
neuper@38050
    58
 (prep_pbt (*Test.thy*) (theory "Isac")
neuper@37986
    59
 (["root'","univariate","equation","test"],
neuper@37981
    60
  [("#Given" ,["equality e_e","solveFor v_v"]),
neuper@37982
    61
   ("#Where" ,["is_rootequation_in (e_e::bool) (v_::real)"]),
neuper@37906
    62
   ("#Find"  ,["solutions v_i_"]) 
neuper@37906
    63
  ],
neuper@37906
    64
  append_rls e_rls [Calc ("Test.is'_rootequation'_in",
neuper@37906
    65
			  eval_is_rootequation_in "")],
neuper@38058
    66
  [("Test","methode")]));
neuper@37906
    67
s1210629013@55359
    68
Test_KEStore_Elems.add_pbts
s1210629013@55355
    69
  [prep_pbt (*Test.thy*) (theory "Isac")
s1210629013@55355
    70
      (["root'","univariate","equation","test"],
s1210629013@55355
    71
        [("#Given" ,["equality e_e","solveFor v_v"]),
s1210629013@55355
    72
          ("#Where" ,["is_rootequation_in (e_e::bool) (v_::real)"]),
s1210629013@55355
    73
          ("#Find"  ,["solutions v_i_"])],
s1210629013@55355
    74
        append_rls e_rls [Calc ("Test.is'_rootequation'_in", eval_is_rootequation_in "")],
s1210629013@55355
    75
        [("Test","methode")])]
s1210629013@55355
    76
  thy;
s1210629013@55355
    77
neuper@37986
    78
match_pbl ["equality (sqrt(x)=1)","solveFor x","solutions L"] (get_pbt ["root'","univariate","equation","test"]); 
neuper@37906
    79
neuper@37906
    80
neuper@37906
    81
(*---------------- 29.7.02 ---------------------*)
neuper@37906
    82
neuper@37906
    83
store_pbt
neuper@38050
    84
 (prep_pbt (theory "Isac")
neuper@37906
    85
 (["approximate","univariate","equation","test"],
neuper@37981
    86
  [("#Given" ,["equality e_e","solveFor v_v","errorBound err_"]),
neuper@37981
    87
   ("#Where" ,["matches (?a = ?b) e_e"]),
neuper@37906
    88
   ("#Find"  ,["solutions v_i_"])
neuper@37906
    89
  ],
neuper@37906
    90
  append_rls e_rls [Calc ("Tools.matches",eval_matches "#matches_")],
neuper@37906
    91
  []));
neuper@37906
    92
s1210629013@55359
    93
Test_KEStore_Elems.add_pbts
s1210629013@55355
    94
  [prep_pbt (theory "Isac")
s1210629013@55355
    95
      (["approximate","univariate","equation","test"],
s1210629013@55355
    96
        [("#Given", ["equality e_e","solveFor v_v","errorBound err_"]),
s1210629013@55355
    97
          ("#Where", ["matches (?a = ?b) e_e"]),
s1210629013@55355
    98
          ("#Find", ["solutions v_i_"])],
s1210629013@55355
    99
        append_rls e_rls [Calc ("Tools.matches",eval_matches "#matches_")], [])]
s1210629013@55355
   100
  thy;
s1210629013@55355
   101
neuper@37906
   102
methods:= overwritel (!methods,
neuper@37906
   103
[
neuper@37906
   104
 prep_met
neuper@38050
   105
 (("Isac","solve_univar_err"):metID,
neuper@37981
   106
   [("#Given" ,["equality e_e","solveFor v_v","errorBound err_"]),
neuper@37906
   107
    ("#Find"  ,["solutions v_i_"])
neuper@37906
   108
    ],
neuper@37906
   109
   {rew_ord'="tless_true",rls'="tval_rls",erls=e_rls,prls=e_rls,calc=[],
neuper@37906
   110
    asm_rls=[],asm_thm=[]},
neuper@37982
   111
 "Script Solve_univar_err (e_e::bool) (v_::real) (err_::bool) =  \
neuper@37981
   112
 \ (if (is_rootequation_in e_e v_v)\
neuper@37906
   113
 \  then ((SubProblem (Isac_,[squareroot,univariate,equation],\
neuper@37984
   114
 \         (SqRoot_,square_equation)) [BOOL e_e, REAL v_v, BOOL err_]))\
neuper@37906
   115
 \  else ((SubProblem (Isac_,[linear,univariate,equation],\
neuper@37984
   116
 \         (RatArith_,solve_linear)) [BOOL e_e, REAL v_])))"
neuper@37906
   117
 )]);
neuper@37906
   118
neuper@37906
   119
val fmz = ["equality (1+2*x=0)","solveFor x","errorBound (eps=0)",
neuper@37906
   120
	   "solutions L"];
neuper@37906
   121
val (dI',pI',mI') =
neuper@38050
   122
  ("Isac",["approximate","univariate","equation","test"],
neuper@38050
   123
   ("Isac","solve_univar_err"));
neuper@37906
   124
val p = e_pos'; val c = []; 
neuper@37906
   125
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   126
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
neuper@37906
   127
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   128
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   129
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   130
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   131
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   132
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   133
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@38050
   134
(*val nxt = ("Apply_Method",Apply_Method ("Isac","solve_univar_err"))*)
neuper@37906
   135
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   136
val (p,_,f,nxt,_,pt) = (me nxt p [1] pt) handle e => print_exn_G e;
neuper@37906
   137
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   138
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   139
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   140
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   141
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   142
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   143
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@38058
   144
(*val nxt = ("Apply_Method",Apply_Method ("RatArith","solve_linear"))*)
neuper@37906
   145
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   146
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   147
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   148
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   149
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   150
if f = Form' (FormKF (~1,EdUndef,0,Nundef,"[x = -1 / 2]"))
neuper@37906
   151
   andalso nxt = ("End_Proof'",End_Proof') then ()
neuper@38031
   152
else error "new behaviour in testexample rationals2.sml 1+2*x=0";
neuper@37906
   153
neuper@37906
   154
(*---------------------------------*)
neuper@37906
   155
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   156
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   157
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   158
val fmz = ["equality (sqrt(x) - 1 = 0)","solveFor x","errorBound (eps=0)",
neuper@37906
   159
	   "solutions L"];
neuper@37906
   160
val (dI',pI',mI') =
neuper@38050
   161
  ("Isac",["approximate","univariate","equation","test"],
neuper@38050
   162
   ("Isac","solve_univar_err"));
neuper@37906
   163
val p = e_pos'; val c = []; 
neuper@37906
   164
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   165
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
neuper@37906
   166
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   167
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   168
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   169
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   170
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   171
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   172
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@38050
   173
(*val nxt = ("Apply_Method",Apply_Method ("Isac","solve_univar_err"))*)
neuper@37906
   174
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   175
val (p,_,f,nxt,_,pt) = (me nxt p [1] pt) handle e => print_exn_G e;
neuper@37906
   176
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   177
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   178
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   179
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   180
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   181
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   182
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   183
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   184
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   185
if p = ([1,1],Frm) andalso 
neuper@37906
   186
   f = Form' (FormKF (~1,EdUndef,2,Nundef,"sqrt x - 1 = 0")) andalso
neuper@37906
   187
   nxt = ("Empty_Tac",Empty_Tac) (*script ist noch 'helpless'*) then ()
neuper@38031
   188
else error "new behaviour in testexample rationals2.sml sqrt(x) - 1 = 0";