test/Tools/isac/OLDTESTS/script_if.sml
author Walther Neuper <neuper@ist.tugraz.at>
Tue, 28 Sep 2010 09:06:56 +0200
branchisac-update-Isa09-2
changeset 38031 460c24a6a6ba
parent 37986 7b1d2366c191
child 38050 4c52ad406c20
permissions -rw-r--r--
tuned error and writeln

# raise error --> error
# writeln in atomtyp, atomty, atomt and xmlsrc
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@37906
    11
val thy = Isac.thy;
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@37906
    40
val t = (term_of o the o (parse Isac.thy)) 
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@37926
    47
val SOME(tt,_) = rewrite_set_ Isac.thy true tval_rls t;
neuper@37906
    48
neuper@37906
    49
rewrite_set "Isac.thy" true 
neuper@37906
    50
	    "tval_rls" "is_rootequation_in (sqrt(x)=1) x";
neuper@37906
    51
rewrite_set "Test.thy" true 
neuper@37906
    52
	    "tval_rls" "is_rootequation_in (sqrt(x)=1) x";
neuper@37906
    53
neuper@37906
    54
neuper@37906
    55
(*WN: ^^^--- bitte nimm vorerst immer Isac.thy, 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@37906
    58
 (prep_pbt (*Test.thy*) Isac.thy
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@37906
    66
  [("Test.thy","methode")]));
neuper@37906
    67
neuper@37986
    68
match_pbl ["equality (sqrt(x)=1)","solveFor x","solutions L"] (get_pbt ["root'","univariate","equation","test"]); 
neuper@37906
    69
neuper@37906
    70
neuper@37906
    71
(*---------------- 29.7.02 ---------------------*)
neuper@37906
    72
neuper@37906
    73
store_pbt
neuper@37906
    74
 (prep_pbt Isac.thy
neuper@37906
    75
 (["approximate","univariate","equation","test"],
neuper@37981
    76
  [("#Given" ,["equality e_e","solveFor v_v","errorBound err_"]),
neuper@37981
    77
   ("#Where" ,["matches (?a = ?b) e_e"]),
neuper@37906
    78
   ("#Find"  ,["solutions v_i_"])
neuper@37906
    79
  ],
neuper@37906
    80
  append_rls e_rls [Calc ("Tools.matches",eval_matches "#matches_")],
neuper@37906
    81
  []));
neuper@37906
    82
neuper@37906
    83
methods:= overwritel (!methods,
neuper@37906
    84
[
neuper@37906
    85
 prep_met
neuper@37906
    86
 (("Isac.thy","solve_univar_err"):metID,
neuper@37981
    87
   [("#Given" ,["equality e_e","solveFor v_v","errorBound err_"]),
neuper@37906
    88
    ("#Find"  ,["solutions v_i_"])
neuper@37906
    89
    ],
neuper@37906
    90
   {rew_ord'="tless_true",rls'="tval_rls",erls=e_rls,prls=e_rls,calc=[],
neuper@37906
    91
    asm_rls=[],asm_thm=[]},
neuper@37982
    92
 "Script Solve_univar_err (e_e::bool) (v_::real) (err_::bool) =  \
neuper@37981
    93
 \ (if (is_rootequation_in e_e v_v)\
neuper@37906
    94
 \  then ((SubProblem (Isac_,[squareroot,univariate,equation],\
neuper@37984
    95
 \         (SqRoot_,square_equation)) [BOOL e_e, REAL v_v, BOOL err_]))\
neuper@37906
    96
 \  else ((SubProblem (Isac_,[linear,univariate,equation],\
neuper@37984
    97
 \         (RatArith_,solve_linear)) [BOOL e_e, REAL v_])))"
neuper@37906
    98
 )]);
neuper@37906
    99
neuper@37906
   100
val fmz = ["equality (1+2*x=0)","solveFor x","errorBound (eps=0)",
neuper@37906
   101
	   "solutions L"];
neuper@37906
   102
val (dI',pI',mI') =
neuper@37906
   103
  ("Isac.thy",["approximate","univariate","equation","test"],
neuper@37906
   104
   ("Isac.thy","solve_univar_err"));
neuper@37906
   105
val p = e_pos'; val c = []; 
neuper@37906
   106
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   107
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
neuper@37906
   108
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   109
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   110
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   111
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   112
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   113
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   114
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   115
(*val nxt = ("Apply_Method",Apply_Method ("Isac.thy","solve_univar_err"))*)
neuper@37906
   116
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   117
val (p,_,f,nxt,_,pt) = (me nxt p [1] pt) handle e => print_exn_G e;
neuper@37906
   118
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   119
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   120
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   121
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   122
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   123
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   124
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   125
(*val nxt = ("Apply_Method",Apply_Method ("RatArith.thy","solve_linear"))*)
neuper@37906
   126
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
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
if f = Form' (FormKF (~1,EdUndef,0,Nundef,"[x = -1 / 2]"))
neuper@37906
   132
   andalso nxt = ("End_Proof'",End_Proof') then ()
neuper@38031
   133
else error "new behaviour in testexample rationals2.sml 1+2*x=0";
neuper@37906
   134
neuper@37906
   135
(*---------------------------------*)
neuper@37906
   136
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   137
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   138
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   139
val fmz = ["equality (sqrt(x) - 1 = 0)","solveFor x","errorBound (eps=0)",
neuper@37906
   140
	   "solutions L"];
neuper@37906
   141
val (dI',pI',mI') =
neuper@37906
   142
  ("Isac.thy",["approximate","univariate","equation","test"],
neuper@37906
   143
   ("Isac.thy","solve_univar_err"));
neuper@37906
   144
val p = e_pos'; val c = []; 
neuper@37906
   145
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   146
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
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
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   151
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   152
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   153
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   154
(*val nxt = ("Apply_Method",Apply_Method ("Isac.thy","solve_univar_err"))*)
neuper@37906
   155
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   156
val (p,_,f,nxt,_,pt) = (me nxt p [1] pt) handle e => print_exn_G e;
neuper@37906
   157
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   158
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   159
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   160
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   161
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   162
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   163
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   164
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   165
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   166
if p = ([1,1],Frm) andalso 
neuper@37906
   167
   f = Form' (FormKF (~1,EdUndef,2,Nundef,"sqrt x - 1 = 0")) andalso
neuper@37906
   168
   nxt = ("Empty_Tac",Empty_Tac) (*script ist noch 'helpless'*) then ()
neuper@38031
   169
else error "new behaviour in testexample rationals2.sml sqrt(x) - 1 = 0";