src/Tools/isac/Knowledge/Simplify.ML
branchisac-update-Isa09-2
changeset 37947 22235e4dbe5f
parent 37926 e6fc98fbcb85
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/Tools/isac/Knowledge/Simplify.ML	Wed Aug 25 16:20:07 2010 +0200
     1.3 @@ -0,0 +1,76 @@
     1.4 +(* simplification of terms
     1.5 +   author: Walther Neuper 050912
     1.6 +   (c) due to copyright terms
     1.7 +
     1.8 +use"Knowledge/Simplify.ML";
     1.9 +use"Simplify.ML";
    1.10 +*)
    1.11 +
    1.12 +
    1.13 +(** interface isabelle -- isac **)
    1.14 +
    1.15 +theory' := overwritel (!theory', [("Simplify.thy",Simplify.thy)]);
    1.16 +
    1.17 +(** problems **)
    1.18 +
    1.19 +store_pbt
    1.20 + (prep_pbt Simplify.thy "pbl_simp" [] e_pblID
    1.21 + (["simplification"],
    1.22 +  [("#Given" ,["term t_"]),
    1.23 +   ("#Find"  ,["normalform n_"])
    1.24 +  ],
    1.25 +  append_rls "e_rls" e_rls [(*for preds in where_*)], 
    1.26 +  SOME "Simplify t_", 
    1.27 +  []));
    1.28 +
    1.29 +store_pbt
    1.30 + (prep_pbt Simplify.thy "pbl_vereinfache" [] e_pblID
    1.31 + (["vereinfachen"],
    1.32 +  [("#Given" ,["term t_"]),
    1.33 +   ("#Find"  ,["normalform n_"])
    1.34 +  ],
    1.35 +  append_rls "e_rls" e_rls [(*for preds in where_*)], 
    1.36 +  SOME "Vereinfache t_", 
    1.37 +  []));
    1.38 +
    1.39 +(** methods **)
    1.40 +
    1.41 +store_met
    1.42 +    (prep_met Simplify.thy "met_simp" [] e_metID
    1.43 +	      (["simplification"],
    1.44 +	       [("#Given" ,["term t_"]),
    1.45 +		("#Find"  ,["normalform n_"])
    1.46 +		],
    1.47 +	       {rew_ord'="tless_true",
    1.48 +		rls'= e_rls, 
    1.49 +		calc = [], 
    1.50 +		srls = e_rls, 
    1.51 +		prls=e_rls,
    1.52 +		crls = e_rls, nrls = e_rls},
    1.53 +	       "empty_script"
    1.54 +	       ));
    1.55 +
    1.56 +(** CAS-command **)
    1.57 +
    1.58 +(*.function for handling the cas-input "Simplify (2*a + 3*a)":
    1.59 +   make a model which is already in ptree-internal format.*)
    1.60 +(* val (h,argl) = strip_comb (str2term "Simplify (2*a + 3*a)");
    1.61 +   val (h,argl) = strip_comb ((term_of o the o (parse thy)) 
    1.62 +				  "Simplify (2*a + 3*a)");
    1.63 +   *)
    1.64 +fun argl2dtss t =
    1.65 +    [((term_of o the o (parse thy)) "term", t),
    1.66 +     ((term_of o the o (parse thy)) "normalform", 
    1.67 +      [(term_of o the o (parse thy)) "N"])
    1.68 +     ]
    1.69 +  | argl2dtss _ = raise error "Simplify.ML: wrong argument for argl2dtss";
    1.70 +
    1.71 +castab := 
    1.72 +overwritel (!castab, 
    1.73 +	    [((term_of o the o (parse thy)) "Simplify",  
    1.74 +	      (("Isac.thy", ["simplification"], ["no_met"]), 
    1.75 +	       argl2dtss)),
    1.76 +	     ((term_of o the o (parse thy)) "Vereinfache",  
    1.77 +	      (("Isac.thy", ["vereinfachen"], ["no_met"]), 
    1.78 +	       argl2dtss))
    1.79 +	     ]);