test/Tools/isac/Knowledge/inverse_z_transform.sml
author wneuper <walther.neuper@jku.at>
Sat, 17 Jul 2021 14:05:28 +0200
changeset 60329 0c10aeff57d7
parent 60242 73ee61385493
child 60549 c0a775618258
permissions -rwxr-xr-x
replace "-*" by "- *" for numerals "*" in test/*
neuper@42413
     1
(* Title:  Knowledge/Inverse_Z_Transform/inverse_z_transform.sml
neuper@42278
     2
   Author: Jan Rocnik
neuper@42278
     3
   (c) copyright due to lincense terms.
neuper@42278
     4
*)
neuper@42278
     5
neuper@42278
     6
"-----------------------------------------------------------------";
neuper@42278
     7
"table of contents -----------------------------------------------";
neuper@42278
     8
"-----------------------------------------------------------------";
neuper@42278
     9
"----------- met/pbl [SignalProcessing,Z_Transform,inverse] known ";
wneuper@59537
    10
"----------- test [SignalProcessing,Z_Transform,Inverse_sub] me = ";
wneuper@59550
    11
"----------- test [SignalProcessing,Z_Transform,Inverse_sub] auto-";
neuper@42278
    12
"-----------------------------------------------------------------";
neuper@42278
    13
"-----------------------------------------------------------------";
neuper@42278
    14
neuper@42278
    15
"----------- met/pbl [SignalProcessing,Z_Transform,inverse] known ";
neuper@42278
    16
"----------- met/pbl [SignalProcessing,Z_Transform,inverse] known ";
neuper@42278
    17
"----------- met/pbl [SignalProcessing,Z_Transform,inverse] known ";
walther@59997
    18
Problem.from_store ["Inverse", "Z_Transform", "SignalProcessing"];
walther@60154
    19
MethodC.from_store ["SignalProcessing", "Z_Transform", "Inverse"];
neuper@42278
    20
wneuper@59535
    21
"----------- test [SignalProcessing,Z_Transform,Inverse_sub] me = ";
wneuper@59535
    22
"----------- test [SignalProcessing,Z_Transform,Inverse_sub] me = ";
wneuper@59535
    23
"----------- test [SignalProcessing,Z_Transform,Inverse_sub] me = ";
wneuper@59579
    24
(* the ONLY Test_Isac, which uses Rewrite !!! *)
walther@60329
    25
val fmz = ["filterExpression (X z = 3 / (z - 1/4 + - 1/8 * (1/(z::real))))",
wneuper@59550
    26
  "functionName X_z", "stepResponse (x[n::real]::bool)"];
wneuper@59592
    27
val (dI, pI, mI) = ("Isac_Knowledge", ["Inverse", "Z_Transform", "SignalProcessing"], 
wneuper@59550
    28
   ["SignalProcessing", "Z_Transform", "Inverse_sub"]);
wneuper@59538
    29
(*[], Pbl*)val (p,_,fb,nxt,_,pt)  = CalcTreeTEST [(fmz, (dI,pI,mI))]; (*Model_Problem*)
wneuper@59538
    30
(*[], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Add_Given "filterExpression (X z = ...*)
wneuper@59538
    31
(*[], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Add_Find "stepResponse (x [n])")*)
wneuper@59592
    32
(*[], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Specify_Theory "Isac_Knowledge"*)
wneuper@59538
    33
(*[], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Specify_Problem ["Inverse_sub", "Z_Transform", "SignalProcessing"]*)
wneuper@59538
    34
(*[], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Specify_Method ["SignalProcessing", "Z_Transform", "Inverse_sub"]*) 
wneuper@59538
    35
(*[], Met*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Add_Given "boundVariable X_z"*)
walther@59997
    36
(*[], Met*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Apply_Me["SignalProcessing", "Z_Transform", "Inverse_sub"]*)
wneuper@59535
    37
(*[1], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Rewrite ("ruleZY", "Inverse_Z_Transform.ruleZY")*)
wneuper@59592
    38
(*[1], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Subproblem ("Isac_Knowledge", ["partial_fraction", "rational..*)
wneuper@59535
    39
(*[2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Model_Problem*)
wneuper@59535
    40
(*[2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Add_Given "functionTerm (X' z)"*)
wneuper@59535
    41
(*[2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Add_Given "solveFor z"*)
wneuper@59535
    42
(*[2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Add_Find "decomposedFunction p_p'''"*)
wneuper@59535
    43
(*[2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Specify_Theory*)
wneuper@59535
    44
(*[2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Specify_Problem*)
wneuper@59535
    45
(*[2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Specify_Method*)
wneuper@59535
    46
(*[2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Apply_Method ["simplification", "of_rationals", "to_partial_fraction"]*)
wneuper@59535
    47
wneuper@59535
    48
(*[2,1], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt;
walther@60329
    49
if p = ([2, 1], Frm) andalso f2str fb = "3 / (z * (z - 1 / 4 + - 1 / 8 * (1 / z)))"
wneuper@59538
    50
then () else error "Z_Transform,inverse_sub] me 1"; (*Rewrite_Set "norm_Rational"*)
wneuper@59535
    51
wneuper@59592
    52
(*[2,1], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Subproblem ("Isac_Knowledge", ["abcFormula", "degree_2", "po...a*)
wneuper@59535
    53
(*[2,2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    54
(*[2,2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    55
(*[2,2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    56
(*[2,2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    57
(*[2,2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    58
(*[2,2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    59
(*[2,2], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    60
(*[2,2], Met*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Apply_Method ["PolyEq", "solve_d2_polyeq_abc_equation"*)
wneuper@59535
    61
(*[2,2,1], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
walther@60329
    62
if p = ([2, 2, 1], Frm) andalso f2str fb = "- 1 + - 2 * z + 8 * z \<up> 2 = 0"
wneuper@59538
    63
then () else error "Z_Transform,inverse_sub] me 2";
wneuper@59535
    64
wneuper@59535
    65
(*[2,2,1], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    66
(*[2,2,2], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    67
(*[2,2,3], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    68
(*[2,2,4], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Check_Postcond ["abcFormula", "degree_2", "polynomial", "univariate", "equation"]*)
walther@60329
    69
(*[2,2], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Take "3 / ((z - 1 / 2) * (z - - 1 / 4))"*)
wneuper@59535
    70
(*[2,3], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Rewrite_Set "ansatz_rls"*)
walther@60329
    71
(*[2,3], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Take "3 / ((z - 1 / 2) * (z - - 1 / 4)) = AA / (z - 1 / 2) + BB / (z - - 1 / 4)*)
wneuper@59535
    72
(*[2,4], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Rewrite_Set "equival_trans"*)
walther@60329
    73
(*[2,4], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Take "3 = A * (z - - 1 / 4) + B * (z - 1 / 2)"*)
wneuper@59535
    74
(*[2,5], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*"Substitute ["z = 1 / 2"]*)
wneuper@59535
    75
(*[2,5], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt;
walther@60329
    76
if p = ([2, 5], Res) andalso f2str fb = "3 = AA * (1 / 2 - - 1 / 4) + BB * (1 / 2 - 1 / 2)"
wneuper@59538
    77
then () else error "Z_Transform,inverse_sub] me 3";   (*Rewrite_Set "norm_Rational"*)
wneuper@59535
    78
walther@59997
    79
(*[2, 6], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Subproblem (Isac, ["normalise", "polynomial", "univariate", "equation"]*)
wneuper@59535
    80
(*[2,7], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    81
(*[2,7], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    82
(*[2,7], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    83
(*[2,7], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    84
(*[2,7], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    85
(*[2,7], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    86
(*[2,7], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    87
(*[2,7], Met*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Apply_Method ["PolyEq", "normalise_poly"]*)
wneuper@59535
    88
(*[2,7,1], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    89
(*[2,7,1], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    90
(*[2,7,2], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    91
if p = ([2, 7, 2], Res) andalso f2str fb = "3 / 1 + -3 / 4 * AA = 0"
wneuper@59538
    92
then () else error "Z_Transform,inverse_sub] me 5";
wneuper@59535
    93
wneuper@59535
    94
(*[2,7,3], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Subproblem*)
wneuper@59535
    95
(*[2,7,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    96
(*[2,7,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    97
(*[2,7,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    98
(*[2,7,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
    99
(*[2,7,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   100
(*[2,7,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   101
(*[2,7,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   102
(*[2,7,4], Met*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Apply_Method ["PolyEq", "solve_d1_polyeq_equation"]*)
wneuper@59535
   103
(*[2,7,4,1], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   104
if p = ([2, 7, 4, 1], Frm) andalso f2str fb = "3 + -3 / 4 * AA = 0"
wneuper@59538
   105
then () else error "Z_Transform,inverse_sub] me 6";
wneuper@59535
   106
wneuper@59535
   107
(*[2,7,4,1], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   108
(*[2,7,4,2], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   109
(*[2,7,4,3], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   110
(*[2,7,4,4], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
walther@59997
   111
(*[2,7,4,5], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Check_Postcond ["degree_1", "polynomial", "univariate", "equation"]*)
walther@59997
   112
(*[2,7,4], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Check_Postcond ["normalise", "polynomial", "univariate", "equation"]*)
wneuper@59535
   113
(*[2,7], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   114
(*[2,8], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   115
(*[2,8], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
walther@60329
   116
if p = ([2, 8], Res) andalso f2str fb = "3 = AA * (- 1 / 4 - - 1 / 4) + BB * (- 1 / 4 - 1 / 2)"
wneuper@59538
   117
then () else error "Z_Transform,inverse_sub] me 7";
wneuper@59535
   118
wneuper@59535
   119
(*[2,9], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Subproblem*)
wneuper@59535
   120
(*[2,10], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   121
(*[2,10], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   122
(*[2,10], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   123
(*[2,10], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   124
(*[2,10], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   125
(*[2,10], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   126
(*[2,10], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   127
(*[2,10], Met*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Apply_Method ["PolyEq", "normalise_poly"]*)
wneuper@59535
   128
(*[2,10,1], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   129
if p = ([2, 10, 1], Frm) andalso f2str fb = "3 = -3 * BB / 4"
wneuper@59538
   130
then () else error "Z_Transform,inverse_sub] me 8";
wneuper@59535
   131
wneuper@59535
   132
(*[2,10,1], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   133
(*[2,10,2], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   134
if p = ([2, 10, 2], Res) andalso f2str fb = "3 / 1 + 3 / 4 * BB = 0"
wneuper@59538
   135
then () else error "Z_Transform,inverse_sub] me 9";
wneuper@59535
   136
wneuper@59535
   137
(*[2,10,3], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Subproblem*)
wneuper@59535
   138
(*[2,10,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   139
(*[2,10,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   140
(*[2,10,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   141
(*[2,10,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   142
(*[2,10,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   143
(*[2,10,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   144
(*[2,10,4], Pbl*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   145
wneuper@59535
   146
(*[2,10,4], Met*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Apply_Method ["PolyEq", "solve_d1_polyeq_equation"]*)
wneuper@59535
   147
(*[2,10,4,1], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   148
if p = ([2, 10, 4, 1], Frm) andalso f2str fb = "3 + 3 / 4 * BB = 0"
wneuper@59538
   149
then () else error "Z_Transform,inverse_sub] me 10";
wneuper@59535
   150
walther@59627
   151
((*[2,10,4,1], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   152
(*[2,10,4,2], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   153
(*[2,10,4,3], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   154
(*[2,10,4,4], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
walther@59997
   155
(*[2,10,4,5], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Check_Postcond ["degree_1", "polynomial", "univariate", "equation"]*)
walther@59997
   156
(*[2,10,4], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Check_Postcond ["normalise", "polynomial", "univariate", "equation"]*)
wneuper@59535
   157
(*[2,10], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
wneuper@59535
   158
(*[2,11], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (**)
walther@59997
   159
(*[2,11], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt; (*Check_Postcond ["partial_fraction", "rational", "simplification"]*)
wneuper@59535
   160
(*[2], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt;
walther@60329
   161
f2str fb = "X_z = 4 * (z / (z - 1 / 2)) + -4 * (z / (z - - 1 / 4))"; (*Take "?X' z = 4 / (z - 1 / 2) + -4 / (z - - 1 / 4)"*)
wneuper@59535
   162
wneuper@59537
   163
(*[3], Frm*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt;
walther@60329
   164
f2str fb = "?X' z = 4 / (z - 1 / 2) + -4 / (z - - 1 / 4)"; (*Rewrite ("ruleYZ", "?a / ?b + ?c / ?d = ?a * (?z / ?b) + ?c * (?z / ?d)")*)
wneuper@59535
   165
wneuper@59537
   166
(*[3], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt;
walther@60329
   167
f2str fb = "?X' z = 4 * (z / (z - 1 / 2)) + -4 * (z / (z - - 1 / 4))";(*Take "X_z = 4 * (?z / (z - 1 / 2)) + -4 * (?z / (z - - 1 / 4))"*)
wneuper@59535
   168
wneuper@59537
   169
(*[4], Frm)*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt;
wneuper@59537
   170
(*[4], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt;
wneuper@59537
   171
(*[], Res*)val (p,_,fb,nxt,_,pt) = me nxt p [] pt;
wneuper@59535
   172
wneuper@59537
   173
case nxt of (_, End_Proof') =>
wneuper@59537
   174
  if p = ([], Res) andalso
walther@60329
   175
    f2str fb = "X_z = 4 * (1 / 2) \<up> ?n * ?u [?n] + -4 * (- 1 / 4) \<up> ?n * ?u [?n]"
wneuper@59537
   176
  then () else error "[SignalProcessing,Z_Transform,Inverse_sub] changed 1"
wneuper@59550
   177
| _ => error "[SignalProcessing,Z_Transform,Inverse_sub] changed 2";
wneuper@59537
   178
wneuper@59536
   179
wneuper@59550
   180
"----------- test [SignalProcessing,Z_Transform,Inverse_sub] auto-";
wneuper@59550
   181
"----------- test [SignalProcessing,Z_Transform,Inverse_sub] auto-";
wneuper@59550
   182
"----------- test [SignalProcessing,Z_Transform,Inverse_sub] auto-";
s1210629013@55445
   183
reset_states ();
walther@60329
   184
val fmz = ["filterExpression (X z = 3 / (z - 1/4 + - 1/8 * (1/(z::real))))",
wneuper@59550
   185
  "functionName X_z", "stepResponse (x[n::real]::bool)"];
wneuper@59592
   186
val (dI, pI, mI) = ("Isac_Knowledge", ["Inverse", "Z_Transform", "SignalProcessing"], 
neuper@42421
   187
   ["SignalProcessing", "Z_Transform", "Inverse_sub"]);
neuper@42417
   188
CalcTree [(fmz, (dI,pI,mI))];
neuper@42417
   189
Iterator 1;
neuper@42417
   190
moveActiveRoot 1;
wneuper@59248
   191
autoCalculate 1 CompleteCalc; 
neuper@42417
   192
neuper@42417
   193
val ((pt,_),_) = get_calc 1; val p = get_pos 1 1;
walther@59983
   194
val (Form f, tac, asms) = ME_Misc.pt_extract (pt, p);
walther@60329
   195
if UnparseC.term f = "X_z = 4 * (1 / 2) \<up> ?n * ?u [?n] + -4 * (- 1 / 4) \<up> ?n * ?u [?n]"
neuper@42417
   196
  andalso p = ([], Res) then ()
wneuper@59537
   197
  else error "inv Z, exp 1 autoCalculate changed";