test/Tools/isac/Interpret/li-tool.sml
changeset 60763 2121f1a39a64
parent 60760 3b173806efe2
child 60766 2e0603ca18a4
     1.1 --- a/test/Tools/isac/Interpret/li-tool.sml	Sun Oct 29 07:14:14 2023 +0100
     1.2 +++ b/test/Tools/isac/Interpret/li-tool.sml	Thu Nov 16 08:15:46 2023 +0100
     1.3 @@ -279,15 +279,10 @@
     1.4  (*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "Traegerlaenge L" = nxt
     1.5  (*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "Streckenlast q_0" = nxt
     1.6  (*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Find "Biegelinie y" = nxt
     1.7 -(*/---broken elementwise input to lists---\* )
     1.8 -(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; (*\<rightarrow>Add_Relation "Randbedingungen [y 0 = 0]", ERROR MISSING step: M_b 0 = 0*)
     1.9 -                                        (*isa* ) val Add_Relation "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]" = nxt
    1.10 -                                        ( *isa2*) val Add_Relation "Randbedingungen [y 0 = 0]" = nxt
    1.11 -(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; (*\<rightarrow>Add_Relation "Randbedingungen [y L = 0, M_b 0 = 0, M_b L = 0]"*)
    1.12 -                                        (*isa*) val Specify_Theory "Biegelinie" = nxt
    1.13 -                                        (*isa2* ) val Add_Relation "Randbedingungen [y L = 0, M_b 0 = 0, M_b L = 0]" = nxt( **)
    1.14 -( *\---broken elementwise input to lists---/*)
    1.15 -(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Relation "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]" = nxt
    1.16 +(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Relation "Randbedingungen [y 0 = 0]" = nxt
    1.17 +(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Relation "Randbedingungen [y 0 = 0, y L = 0]" = nxt
    1.18 +(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Relation "Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0]" = nxt
    1.19 +(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Relation "Randbedingungen [y L = 0, y 0 = 0, M_b 0 = 0, M_b L = 0]" = nxt
    1.20  (*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Specify_Theory "Biegelinie" = nxt
    1.21  (*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Specify_Problem ["Biegelinien"] = nxt
    1.22  (*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Specify_Method ["IntegrierenUndKonstanteBestimmen2"] = nxt
    1.23 @@ -295,16 +290,10 @@
    1.24  (*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "AbleitungBiegelinie y'" = nxt
    1.25  (*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "Biegemoment M_b" = nxt
    1.26  (*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "Querkraft Q" = nxt
    1.27 -
    1.28 -(*/---with M_Model.match_itms_oris broken elementwise input to lists---\*)
    1.29 -(*NEW match_itms_oris*)
    1.30  (*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "GleichungsVariablen [c]" = nxt
    1.31 -(*NEW*)(*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "GleichungsVariablen [c_2, c_3, c_4]" = nxt
    1.32 -(*NEW*)(*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Apply_Method ["IntegrierenUndKonstanteBestimmen2"] = nxt
    1.33 -(*\---with M_Model.match_itms_oris broken elementwise input to lists---/*)
    1.34 -
    1.35 -(*--------------------- @ {context}----------------------------------------------
    1.36 -(*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "GleichungsVariablen [c, c_2, c_3, c_4]" = nxt
    1.37 +(*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "GleichungsVariablen [c, c_2]" = nxt
    1.38 +(*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "GleichungsVariablen [c, c_2, c_3]" = nxt
    1.39 +(*[], Met*)val (p,_,f,nxt,_,pt) = me nxt p c pt; val Add_Given "GleichungsVariablen [c_2, c, c_3, c_4]" = nxt
    1.40  
    1.41  (*[], Met*)val return_me_Add_Given_GleichungsVariablen
    1.42                                  = me nxt p c pt; (*val Apply_Method ["IntegrierenUndKonstanteBestimmen2"] = nxt*)
    1.43 @@ -348,17 +337,8 @@
    1.44        val (_, itms) = I_Model.s_make_complete ctxt oris
    1.45          (I_Model.OLD_to_TEST probl, I_Model.OLD_to_TEST itms) (pI', mI)
    1.46  ;
    1.47 -(*+*)if (itms |> I_Model.to_string_TEST @{context}) = "[\n" ^
    1.48 -  "(1, [1], true ,#Given, (Cor_TEST Traegerlaenge L , pen2str, Position.T)), \n" ^
    1.49 -  "(2, [1], true ,#Given, (Cor_TEST Streckenlast q_0 , pen2str, Position.T)), \n" ^
    1.50 -  "(4, [1], true ,#Relate, (Cor_TEST Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0] , pen2str, Position.T)), \n" ^
    1.51 -  "(5, [1], true ,#Given, (Cor_TEST FunktionsVariable x , pen2str, Position.T)), \n" ^
    1.52 -  "(6, [1], true ,#Given, (Cor_TEST AbleitungBiegelinie y' , pen2str, Position.T)), \n" ^
    1.53 -  "(7, [1], true ,#Given, (Cor_TEST Biegemoment M_b , pen2str, Position.T)), \n" ^
    1.54 -  "(8, [1], true ,#Given, (Cor_TEST Querkraft Q , pen2str, Position.T)), \n" ^
    1.55 -  "(9, [1], true ,#Given, (Cor_TEST GleichungsVariablen [c, c_2, c_3, c_4] , pen2str, Position.T)), \n" ^
    1.56 -  "(3, [1], true ,#Find, (Cor_TEST Biegelinie y , pen2str, Position.T))]"
    1.57 -(*+*)then () else error "init_pstate: initial i_model changed";
    1.58 +(*+*)val "[\n(1, [1], true ,#Given, (Cor_TEST Traegerlaenge L , pen2str, Position.T)), \n(2, [1], true ,#Given, (Cor_TEST Streckenlast q_0 , pen2str, Position.T)), \n(4, [1], true ,#Relate, (Cor_TEST Randbedingungen [M_b 0 = 0, y 0 = 0, y L = 0, M_b L = 0] , pen2str, Position.T)), \n(5, [1], true ,#Given, (Cor_TEST FunktionsVariable x , pen2str, Position.T)), \n(6, [1], true ,#Given, (Cor_TEST AbleitungBiegelinie y' , pen2str, Position.T)), \n(7, [1], true ,#Given, (Cor_TEST Biegemoment M_b , pen2str, Position.T)), \n(8, [1], true ,#Given, (Cor_TEST Querkraft Q , pen2str, Position.T)), \n(9, [1], true ,#Given, (Cor_TEST GleichungsVariablen [c_3, c, c_2, c_4] , pen2str, Position.T)), \n(3, [1], true ,#Find, (Cor_TEST Biegelinie y , pen2str, Position.T))]"
    1.59 + = itms |> I_Model.to_string_TEST @{context};
    1.60  
    1.61      (*case*)
    1.62      LItool.init_pstate ctxt itms mI (*of*);
    1.63 @@ -380,27 +360,8 @@
    1.64      val subst_eval_list = make_envs_preconds equal_givens
    1.65      val (env_subst, env_eval) = split_list subst_eval_list
    1.66  ;
    1.67 -(*+*)if (equal_descr_pairs |> descr_pairs_to_string @{context}) = "[" ^
    1.68 -(*defined: in program+model--vvvv--,----------------------------------------- in problem ---vvv*)
    1.69 -  "((#Given, (Traegerlaenge, l_l)), (1, [1], true ,#Given, " ^
    1.70 -    "(Cor_TEST Traegerlaenge L , pen2str, Position.T))), " ^
    1.71 -  "((#Given, (Streckenlast, q_q)), (2, [1], true ,#Given, " ^
    1.72 -    "(Cor_TEST Streckenlast q_0 , pen2str, Position.T))), " ^
    1.73 -  "((#Given, (Randbedingungen, r_b)), (4, [1], true ,#Relate, " ^
    1.74 -    "(Cor_TEST Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0] , pen2str, Position.T))), " ^
    1.75 -  "((#Given, (FunktionsVariable, fun_var)), (5, [1], true ,#Given, " ^
    1.76 -    "(Cor_TEST FunktionsVariable x , pen2str, Position.T))), " ^
    1.77 -  "((#Given, (AbleitungBiegelinie, id_der)), (6, [1], true ,#Given, " ^
    1.78 -    "(Cor_TEST AbleitungBiegelinie y' , pen2str, Position.T))), " ^
    1.79 -  "((#Given, (Biegemoment, id_momentum)), (7, [1], true ,#Given, " ^
    1.80 -    "(Cor_TEST Biegemoment M_b , pen2str, Position.T))), " ^
    1.81 -  "((#Given, (Querkraft, id_lat_force)), (8, [1], true ,#Given, " ^
    1.82 -    "(Cor_TEST Querkraft Q , pen2str, Position.T))), " ^
    1.83 -  "((#Given, (GleichungsVariablen, vs)), (9, [1], true ,#Given, " ^
    1.84 -    "(Cor_TEST GleichungsVariablen [c, c_2, c_3, c_4] , pen2str, Position.T))), " ^
    1.85 -  "((#Find, (Biegelinie, b_b)), (3, [1], true ,#Find, (" ^
    1.86 -    "Cor_TEST Biegelinie y , pen2str, Position.T)))]"
    1.87 -then () else error "of_max_variant: equal_descr_pairs CHANGED";
    1.88 +(*+*)val "[((#Given, (Traegerlaenge, l_l)), (1, [1], true ,#Given, (Cor_TEST Traegerlaenge L , pen2str, Position.T))), ((#Given, (Streckenlast, q_q)), (2, [1], true ,#Given, (Cor_TEST Streckenlast q_0 , pen2str, Position.T))), ((#Given, (Randbedingungen, r_b)), (4, [1], true ,#Relate, (Cor_TEST Randbedingungen [M_b 0 = 0, y 0 = 0, y L = 0, M_b L = 0] , pen2str, Position.T))), ((#Given, (FunktionsVariable, fun_var)), (5, [1], true ,#Given, (Cor_TEST FunktionsVariable x , pen2str, Position.T))), ((#Given, (AbleitungBiegelinie, id_der)), (6, [1], true ,#Given, (Cor_TEST AbleitungBiegelinie y' , pen2str, Position.T))), ((#Given, (Biegemoment, id_momentum)), (7, [1], true ,#Given, (Cor_TEST Biegemoment M_b , pen2str, Position.T))), ((#Given, (Querkraft, id_lat_force)), (8, [1], true ,#Given, (Cor_TEST Querkraft Q , pen2str, Position.T))), ((#Given, (GleichungsVariablen, vs)), (9, [1], true ,#Given, (Cor_TEST GleichungsVariablen [c_3, c, c_2, c_4] , pen2str, Position.T))), ((#Find, (Biegelinie, b_b)), (3, [1], true ,#Find, (Cor_TEST Biegelinie y , pen2str, Position.T)))]"
    1.89 + = equal_descr_pairs |> descr_pairs_to_string @{context}
    1.90  
    1.91      val return_make_env_model = make_env_model equal_descr_pairs;
    1.92  (*////---------------- step into make_env_model --------------------------------------------\\*)
    1.93 @@ -413,13 +374,13 @@
    1.94  
    1.95  (*+*)val "[x]" = ts |> UnparseC.terms @{context}
    1.96  ;
    1.97 -  (*if*) Model_Pattern.is_list_descr descr (*else*);
    1.98 +  (*if*) Pre_Conds.is_list_descr descr (*else*);
    1.99  val return_handle_lists_step = [(id, Library.the_single ts)]
   1.100  
   1.101  (*+*)val "[\"\n(fun_var, x)\"]" = return_handle_lists_step |> Subst.to_string @{context}
   1.102  (*\\\\---------------- step into make_env_model --------------------------------------------//*)
   1.103      val env_model = return_make_env_model
   1.104 -(*+*)val "[\"\n(l_l, L)\", \"\n(q_q, q_0)\", \"\n(r_b, [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0])\", \"\n(fun_var, x)\", \"\n(id_der, y')\", \"\n(id_momentum, M_b)\", \"\n(id_lat_force, Q)\", \"\n(vs, [c, c_2, c_3, c_4])\", \"\n(b_b, y)\"]"
   1.105 +(*+*)val "[\"\n(l_l, L)\", \"\n(q_q, q_0)\", \"\n(r_b, [M_b 0 = 0, y 0 = 0, y L = 0, M_b L = 0])\", \"\n(fun_var, x)\", \"\n(id_der, y')\", \"\n(id_momentum, M_b)\", \"\n(id_lat_force, Q)\", \"\n(vs, [c_3, c, c_2, c_4])\", \"\n(b_b, y)\"]"
   1.106   = env_model |> Subst.to_string @{context}
   1.107  
   1.108  (*|||----------------- contine of_max_variant ------------------------------------------------*)
   1.109 @@ -427,17 +388,15 @@
   1.110      val subst_eval_list = make_envs_preconds equal_givens
   1.111      val (env_subst, env_eval) = split_list subst_eval_list
   1.112  
   1.113 -(*bieg*)val "[\"\n(l_l, L)\", \"\n(q_q, q_0)\", \"\n(r_b, [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0])\", \"\n(fun_var, x)\", \"\n(id_der, y')\", \"\n(id_momentum, M_b)\", \"\n(id_lat_force, Q)\", \"\n(vs, [c, c_2, c_3, c_4])\", \"\n(b_b, y)\"]"
   1.114 +(*bieg*)val "[\"\n(l_l, L)\", \"\n(q_q, q_0)\", \"\n(r_b, [M_b 0 = 0, y 0 = 0, y L = 0, M_b L = 0])\", \"\n(fun_var, x)\", \"\n(id_der, y')\", \"\n(id_momentum, M_b)\", \"\n(id_lat_force, Q)\", \"\n(vs, [c_3, c, c_2, c_4])\", \"\n(b_b, y)\"]"
   1.115   = env_model |> Subst.to_string @{context}
   1.116  (*bieg*)val "[]" = env_subst |> Subst.to_string @{context}
   1.117  ;
   1.118  (*\\\----------------- step into of_max_variant --------------------------------------------//*)
   1.119 -    val (env_model, (env_subst, env_eval)) = return_make_environments
   1.120  
   1.121  (*||------------------ contine init_pstate ---------------------------------------------------*)
   1.122      val actuals = map snd env_model
   1.123 -(*+*) val "[L, q_0, [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0], x, y', M_b, Q, [c, c_2, c_3, c_4], y]"
   1.124 -(*-----------------///--------------------------------------------------------------------------^^*)
   1.125 +(*+*) val "[L, q_0, [M_b 0 = 0, y 0 = 0, y L = 0, M_b L = 0], x, y', M_b, Q, [c_3, c, c_2, c_4], y]"
   1.126   = actuals |> UnparseC.terms @{context}
   1.127  
   1.128      val formals = Program.formal_args prog
   1.129 @@ -462,5 +421,3 @@
   1.130  (* final test ... ----------------------------------------------------------------------------*)
   1.131  (*+*)val ([], Met) = p
   1.132  (*+*)val Apply_Method ["IntegrierenUndKonstanteBestimmen2"] = nxt
   1.133 - --------------------- @ {context}----------------------------------------------*)
   1.134 -