test/Tools/isac/ADDTESTS/course/SignalProcess/Build_Inverse_Z_Transform.thy
branchdecompose-isar
changeset 42300 bd8307d618d2
parent 42299 869eb3f459d4
child 42301 93083d4e05d8
     1.1 --- a/test/Tools/isac/ADDTESTS/course/SignalProcess/Build_Inverse_Z_Transform.thy	Thu Oct 06 15:01:42 2011 +0200
     1.2 +++ b/test/Tools/isac/ADDTESTS/course/SignalProcess/Build_Inverse_Z_Transform.thy	Thu Oct 06 16:15:29 2011 +0200
     1.3 @@ -149,21 +149,23 @@
     1.4  
     1.5  get_denominator :: "real => real"
     1.6  
     1.7 +text {*Attention Build_Inverse_Z_Transform
     1.8 +       works only because definition was copied into Rationals.thy
     1.9 +     *}
    1.10 +
    1.11  ML {*
    1.12  
    1.13  (*("get_denominator", ("Rational.get'_denominator", eval_get_denominator ""))*)
    1.14  fun eval_get_denominator (thmid:string) _ 
    1.15 -		      (  t as Const ("Build_Inverse_Z_Transform.get_denominator", _) $
    1.16 +		      (t as Const ("Build_Inverse_Z_Transform.get_denominator", _) $
    1.17                (Const ("Rings.inverse_class.divide", _) $ num $
    1.18                  denom)) thy = 
    1.19 -( writeln "found";
    1.20 +
    1.21      SOME (mk_thmid thmid "" 
    1.22              (Print_Mode.setmp [] (Syntax.string_of_term (thy2ctxt thy)) denom) "", 
    1.23  	          Trueprop $ (mk_equality (t, denom)))
    1.24 -)
    1.25 -  | eval_get_denominator _ _ _ _ = 
    1.26 -( writeln "NOT found";
    1.27 -NONE); 
    1.28 +
    1.29 +  | eval_get_denominator _ _ _ _ = NONE; 
    1.30  
    1.31  *}
    1.32  
    1.33 @@ -172,7 +174,8 @@
    1.34  
    1.35  ML {*
    1.36  val t = @{term "get_denominator ((a +x)/b)"};
    1.37 -eval_get_denominator "" 0 t @{theory}
    1.38 +val SOME (_, t') = eval_get_denominator "" 0 t @{theory};
    1.39 +term2str t';
    1.40  *}
    1.41  
    1.42  
    1.43 @@ -226,7 +229,7 @@
    1.44    ["equality (-1/8 + (-1/4)*z + z^^^2 = (0::real))", (*equality*)
    1.45     "solveFor z",                                     (*bound variable*)
    1.46     "solutions L"];                                   (*identifier for solution*)
    1.47 -(*liste der theoreme die zum lösen benötigt werden, aus isac, keine spezielle methode (no met)*)
    1.48 +
    1.49  val (dI',pI',mI') =
    1.50    ("Isac", ["pqFormula","degree_2","polynomial","univariate","equation"], ["no_met"]);
    1.51  *}
    1.52 @@ -574,6 +577,12 @@
    1.53  atomty sc;
    1.54  
    1.55  *}
    1.56 +
    1.57 +text {*
    1.58 +This ruleset contains all functions that are in the script; 
    1.59 +The evaluation of the functions is done by rewriting using this ruleset.
    1.60 +*}
    1.61 +
    1.62  ML {*
    1.63  val srls = Rls {id="srls_InverseZTransform", 
    1.64  		  preconds = [], rew_ord = ("termlessI",termlessI), 
    1.65 @@ -588,7 +597,8 @@
    1.66  			     Thm ("NTH_NIL",num_str @{thm NTH_NIL}),
    1.67  			     Calc("Tools.lhs", eval_lhs"eval_lhs_"), (*<=== ONLY USED*)
    1.68  			     Calc("Tools.rhs", eval_rhs"eval_rhs_"), (*<=== ONLY USED*)
    1.69 -			     Calc("Atools.argument'_in", eval_argument_in "Atools.argument'_in")
    1.70 +			     Calc("Atools.argument'_in", eval_argument_in "Atools.argument'_in"),
    1.71 +     Calc("Rationals.get'_denominator", eval_get_denominator "Rationals.get'_denominator")
    1.72  			    ],
    1.73  		  scr = EmptyScr};
    1.74  *}
    1.75 @@ -623,8 +633,9 @@
    1.76   ));
    1.77  *}
    1.78  ML {*
    1.79 -(*GOON tip for eval_get_argument: compare eval_get_denominator*)
    1.80 -val funId $ arg = @{term "X (z::real)"};
    1.81 +
    1.82 +val Script scr = (#scr o get_met) ["SignalProcessing", "Z_Transform", "inverse"];
    1.83 +atomty scr
    1.84  
    1.85  *}
    1.86  
    1.87 @@ -664,8 +675,12 @@
    1.88  val (p,_,f,nxt,_,pt) = me nxt p [] pt; "nxt = Apply_Method";
    1.89  val (p,_,f,nxt,_,pt) = me nxt p [] pt; "nxt = Rewrite (ruleZY, Inverse_Z_Transform.ruleZY) --> X z = 3 / (z - 1 / 4 + -1 / 8 * (1 / z))"; (*TODO naming!*)
    1.90  val (p,_,f,nxt,_,pt) = me nxt p [] pt; "nxt = Rewrite_Set norm_Rational --> X' z = 3 / (z * (z - 1 / 4 + -1 / 8 * (1 / z)))";
    1.91 +*}
    1.92 +ML {*
    1.93  val (p,_,f,nxt,_,pt) = me nxt p [] pt; "nxt = Take 24 / (-1 + -2 * z + 8 * z ^^^ 2)";
    1.94 -val (p,_,f,nxt,_,pt) = me nxt p [] pt; "   Empty_Tac!   ";
    1.95 +*}
    1.96 +ML {*
    1.97 +val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.98  *}
    1.99  ML {*
   1.100  show_pt pt;