test/Tools/isac/Knowledge/algein.sml
author Walther Neuper <walther.neuper@jku.at>
Wed, 15 Apr 2020 10:07:43 +0200
changeset 59876 eff0b9fc6caa
parent 59874 820bf0840029
child 59911 ff30cec13f4f
permissions -rw-r--r--
use "ThmC" for renaming identifiers
     1 (* tests on AlgEin, Algebra Einf"uhrung, , Unterrichtsversuch IMST-Projekt
     2    author: Walther Neuper 2007
     3    (c) due to copyright terms
     4 *)
     5 
     6 "-----------------------------------------------------------------";
     7 "table of contents -----------------------------------------------";
     8 "-----------------------------------------------------------------";
     9 "----------- build method 'Berechnung' 'erstSymbolisch' ----------";
    10 "----------- me 'Berechnung' 'erstNumerisch' ---------------------";
    11 "----------- auto 'Berechnung' 'erstSymbolisch' ------------------";
    12 "----------- Widerspruch 3 = 777 ---------------------------------";
    13 "-----------------------------------------------------------------";
    14 "-----------------------------------------------------------------";
    15 "-----------------------------------------------------------------";
    16 
    17 val thy = @{theory "AlgEin"};
    18 
    19 
    20 (* use"../smltest/IsacKnowledge/algein.sml";
    21    *)
    22 
    23 "----------- build method 'Berechnung' 'erstSymbolisch' ----------";
    24 "----------- build method 'Berechnung' 'erstSymbolisch' ----------";
    25 "----------- build method 'Berechnung' 'erstSymbolisch' ----------";
    26 val str =
    27 "Program RechnenSymbolScript (k_k::bool) (q__q::bool) \
    28 \(u_u::bool list) (s_s::bool list) (o_o::bool list) (l_l::real) =\
    29 \ (let t_t = (l_l = 1)\
    30 \ in t_t)"
    31 ;
    32 val sc = (inst_abs o Thm.term_of o the o (parse thy)) str;
    33 atomty sc;
    34 atomt sc;
    35 
    36 "----------- me 'Berechnung' 'erstNumerisch' ---------------------";
    37 "----------- me 'Berechnung' 'erstNumerisch' ---------------------";
    38 "----------- me 'Berechnung' 'erstNumerisch' ---------------------";
    39 val fmz = 
    40     ["KantenLaenge (k=(10::real))","Querschnitt (q=(1::real))",
    41      "KantenUnten [b1 = k - 2*(q::real), b2 = k - 2*(q::real), b3 = k - 2*(q::real), b4 = k - 2*(q::real) ]", 
    42      "KantenSenkrecht [v1 = (k::real), v2 = (k::real), v3 = (k::real), v4 = (k::real)]", 
    43      "KantenOben  [t1 = k - 2*(q::real), t2 = k - 2*(q::real), t3 = k - 2*(q::real), t4 = k - 2*(q::real) ]",
    44      "GesamtLaenge L"];
    45 val (dI',pI',mI') =
    46   ("Isac_Knowledge",["numerischSymbolische", "Berechnung"],
    47    ["Berechnung","erstNumerisch"]);
    48 val p = e_pos'; val c = [];
    49 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))](*nxt = ("Model_Pr*);
    50 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Add_Given "KantenLaenge (k = 10)"*);
    51 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Add_Given "Querschnitt (q = 1)"*);
    52 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Add_Given "KantenUnten [b1 = k - 2*q]"*);
    53 val (p,_,f,nxt,_,pt) = me nxt p c pt(*..KantenUnten [b2 = k - 2 * q, b3=..b4*);
    54 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Add_Given "KantenSenkrecht [v1 = k]"*);
    55 val (p,_,f,nxt,_,pt) = me nxt p c pt(*..KantenSenkrecht [v2 = k, v3 = k, v4]*);
    56 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Add_Given "KantenOben [b1 = k - 2 *q])*);
    57 val (p,_,f,nxt,_,pt) = me nxt p c pt(*..KantenOben [b2 = k - 2 * q, b3 =, b4*);
    58 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Add_Find "GesamtLaenge L"*);
    59 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Specify_Theory "AlgEin"*);
    60 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Specify_Problem ["numerischSymbolis,Be*);
    61 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Specify_Method ["Berechnung", "erstSym*);
    62 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Apply_Method*);
    63 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Substitute["Oben = boollist2sum [b1 =*);
    64 f2str f;
    65 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Substitute ["t1 = k - 2 * q", *);f2str f;
    66 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Substitute ["k = 10", "q = 1"]*);f2str f;
    67 val (p,_,f,nxt,_,pt) = me nxt p c pt(*Rewrite_Set "norm_Rational"*);f2str f;
    68 val (p,_,f,nxt,_,pt) = me nxt p c pt(**);
    69 if f2str f = "L = 32 + senkrecht + unten" then ()
    70 else error "algein.sml diff.behav. in erstNumerisch 1";
    71 val (p,_,f,nxt,_,pt) = me nxt p c pt;val(p,_,f,nxt,_,pt)=me nxt p c pt;f2str f;
    72 val (p,_,f,nxt,_,pt) = me nxt p c pt;val(p,_,f,nxt,_,pt)=me nxt p c pt;f2str f;
    73 val (p,_,f,nxt,_,pt) = me nxt p c pt;val(p,_,f,nxt,_,pt)=me nxt p c pt;f2str f;
    74 val (p,_,f,nxt,_,pt) = me nxt p c pt;val(p,_,f,nxt,_,pt)=me nxt p c pt;f2str f;
    75 val (p,_,f,nxt,_,pt) = me nxt p c pt;
    76 if f2str f = "L = 104"
    77 then case nxt of End_Proof' => ()
    78   | _ => error "algein.sml diff.behav. in erstNumerisch 99 1"
    79 else error "algein.sml diff.behav. in erstNumerisch 99 2";
    80 DEconstrCalcTree 1;
    81 
    82 "----------- auto 'Berechnung' 'erstSymbolisch' ------------------";
    83 "----------- auto 'Berechnung' 'erstSymbolisch' ------------------";
    84 "----------- auto 'Berechnung' 'erstSymbolisch' ------------------";
    85 CalcTree
    86 [(["KantenLaenge (k=(10::real))","Querschnitt (q=(1::real))",
    87      "KantenUnten [b1 = k - 2*(q::real), b2 = k - 2*(q::real), b3 = k - 2*(q::real), b4 = k - 2*(q::real) ]", 
    88      "KantenSenkrecht [v1 = (k::real), v2 = (k::real), v3 = (k::real), v4 = (k::real)]", 
    89      "KantenOben  [t1 = k - 2*(q::real), t2 = k - 2*(q::real), t3 = k - 2*(q::real), t4 = k - 2*(q::real) ]",
    90      "GesamtLaenge L"], 
    91   ("Isac_Knowledge",["numerischSymbolische", "Berechnung"],
    92    ["Berechnung","erstSymbolisch"]))];
    93 Iterator 1;
    94 moveActiveRoot 1;
    95 autoCalculate 1 CompleteCalc;
    96 val ((pt,p),_) = get_calc 1; show_pt pt;
    97 if p = ([], Res) andalso UnparseC.term (get_obj g_res pt (fst p)) = "L = 104" then()
    98 else error "algein.sml: 'Berechnung' 'erstSymbolisch' changed";
    99 
   100 "----------- Widerspruch 3 = 777 ---------------------------------";
   101 "----------- Widerspruch 3 = 777 ---------------------------------";
   102 "----------- Widerspruch 3 = 777 ---------------------------------";
   103 val thy = @{theory "Isac_Knowledge"}; 
   104 val rew_ord = dummy_ord;
   105 val erls = Rule_Set.Empty;
   106 val thm = ThmC.thm_from_thy thy "sym_mult_zero_right";
   107 val t = str2term "0 = (0::real)";
   108 val SOME (t',_) = rewrite_ thy rew_ord erls false thm t;
   109 UnparseC.term t' = "0 = ?a1 * 0"; (* = true*)
   110 
   111 (*testing code in ME/appl.sml*)
   112 val sube = ["?a1 = (3::real)"];
   113 val subte = sube2subte sube;
   114 UnparseC.terms_short subte = "[?a1 = 3]"; (* = true*)
   115 val subst = sube2subst thy sube;
   116 foldl and_ (true, map contains_Var subte);
   117 
   118 val t'' = subst_atomic subst t';
   119 UnparseC.term t'' = "0 = 3 * 0"; (* = true*)
   120 
   121 val thm = ThmC.thm_from_thy thy "sym";
   122 (*----- STOPPED.WN0x?: Widerspruch 3 = 777: sym contains "==>" instead of "=" !!!
   123 val SOME (t''',_) = rewrite_ thy rew_ord erls false thm t'';
   124 *)
   125