test/Tools/isac/OLDTESTS/script_if.sml
author Mathias Lehnfeld <s1210629013@students.fh-hagenberg.at>
Mon, 27 Jan 2014 22:26:51 +0100
changeset 55363 d78bc1342183
parent 55359 73dc85c025ab
child 59188 c477d0f79ab9
permissions -rw-r--r--
ad 967c8a1eb6b1 (7): removed all code concerned with 'ptyps = Unsynchronized.ref'
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
s1210629013@55363
    58
KEStore_Elems.add_pbts
s1210629013@55355
    59
  [prep_pbt (*Test.thy*) (theory "Isac")
s1210629013@55355
    60
      (["root'","univariate","equation","test"],
s1210629013@55355
    61
        [("#Given" ,["equality e_e","solveFor v_v"]),
s1210629013@55355
    62
          ("#Where" ,["is_rootequation_in (e_e::bool) (v_::real)"]),
s1210629013@55355
    63
          ("#Find"  ,["solutions v_i_"])],
s1210629013@55355
    64
        append_rls e_rls [Calc ("Test.is'_rootequation'_in", eval_is_rootequation_in "")],
s1210629013@55355
    65
        [("Test","methode")])]
s1210629013@55355
    66
  thy;
s1210629013@55355
    67
neuper@37986
    68
match_pbl ["equality (sqrt(x)=1)","solveFor x","solutions L"] (get_pbt ["root'","univariate","equation","test"]); 
neuper@37906
    69
s1210629013@55363
    70
KEStore_Elems.add_pbts
s1210629013@55355
    71
  [prep_pbt (theory "Isac")
s1210629013@55355
    72
      (["approximate","univariate","equation","test"],
s1210629013@55355
    73
        [("#Given", ["equality e_e","solveFor v_v","errorBound err_"]),
s1210629013@55355
    74
          ("#Where", ["matches (?a = ?b) e_e"]),
s1210629013@55355
    75
          ("#Find", ["solutions v_i_"])],
s1210629013@55355
    76
        append_rls e_rls [Calc ("Tools.matches",eval_matches "#matches_")], [])]
s1210629013@55355
    77
  thy;
s1210629013@55355
    78
neuper@37906
    79
methods:= overwritel (!methods,
neuper@37906
    80
[
neuper@37906
    81
 prep_met
neuper@38050
    82
 (("Isac","solve_univar_err"):metID,
neuper@37981
    83
   [("#Given" ,["equality e_e","solveFor v_v","errorBound err_"]),
neuper@37906
    84
    ("#Find"  ,["solutions v_i_"])
neuper@37906
    85
    ],
neuper@37906
    86
   {rew_ord'="tless_true",rls'="tval_rls",erls=e_rls,prls=e_rls,calc=[],
neuper@37906
    87
    asm_rls=[],asm_thm=[]},
neuper@37982
    88
 "Script Solve_univar_err (e_e::bool) (v_::real) (err_::bool) =  \
neuper@37981
    89
 \ (if (is_rootequation_in e_e v_v)\
neuper@37906
    90
 \  then ((SubProblem (Isac_,[squareroot,univariate,equation],\
neuper@37984
    91
 \         (SqRoot_,square_equation)) [BOOL e_e, REAL v_v, BOOL err_]))\
neuper@37906
    92
 \  else ((SubProblem (Isac_,[linear,univariate,equation],\
neuper@37984
    93
 \         (RatArith_,solve_linear)) [BOOL e_e, REAL v_])))"
neuper@37906
    94
 )]);
neuper@37906
    95
neuper@37906
    96
val fmz = ["equality (1+2*x=0)","solveFor x","errorBound (eps=0)",
neuper@37906
    97
	   "solutions L"];
neuper@37906
    98
val (dI',pI',mI') =
neuper@38050
    99
  ("Isac",["approximate","univariate","equation","test"],
neuper@38050
   100
   ("Isac","solve_univar_err"));
neuper@37906
   101
val p = e_pos'; val c = []; 
neuper@37906
   102
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   103
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
neuper@37906
   104
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   105
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   106
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   107
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
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@38050
   111
(*val nxt = ("Apply_Method",Apply_Method ("Isac","solve_univar_err"))*)
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) handle e => print_exn_G e;
neuper@37906
   114
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   115
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
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;
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@38058
   121
(*val nxt = ("Apply_Method",Apply_Method ("RatArith","solve_linear"))*)
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 (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   126
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   127
if f = Form' (FormKF (~1,EdUndef,0,Nundef,"[x = -1 / 2]"))
neuper@37906
   128
   andalso nxt = ("End_Proof'",End_Proof') then ()
neuper@38031
   129
else error "new behaviour in testexample rationals2.sml 1+2*x=0";
neuper@37906
   130
neuper@37906
   131
(*---------------------------------*)
neuper@37906
   132
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   133
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   134
"-------------- is_rootequ_in - SubProblem -------------------------";
neuper@37906
   135
val fmz = ["equality (sqrt(x) - 1 = 0)","solveFor x","errorBound (eps=0)",
neuper@37906
   136
	   "solutions L"];
neuper@37906
   137
val (dI',pI',mI') =
neuper@38050
   138
  ("Isac",["approximate","univariate","equation","test"],
neuper@38050
   139
   ("Isac","solve_univar_err"));
neuper@37906
   140
val p = e_pos'; val c = []; 
neuper@37906
   141
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   142
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
neuper@37906
   143
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   144
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
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@38050
   150
(*val nxt = ("Apply_Method",Apply_Method ("Isac","solve_univar_err"))*)
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) handle e => print_exn_G e;
neuper@37906
   153
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   154
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
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;
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
if p = ([1,1],Frm) andalso 
neuper@37906
   163
   f = Form' (FormKF (~1,EdUndef,2,Nundef,"sqrt x - 1 = 0")) andalso
neuper@37906
   164
   nxt = ("Empty_Tac",Empty_Tac) (*script ist noch 'helpless'*) then ()
neuper@38031
   165
else error "new behaviour in testexample rationals2.sml sqrt(x) - 1 = 0";