src/Tools/isac/Knowledge/Atools.thy
branchisac-update-Isa09-2
changeset 38014 3e11e3c2dc42
parent 38011 3147f2c1525c
child 38015 67ba02dffacc
     1.1 --- a/src/Tools/isac/Knowledge/Atools.thy	Thu Sep 23 12:56:51 2010 +0200
     1.2 +++ b/src/Tools/isac/Knowledge/Atools.thy	Thu Sep 23 14:49:23 2010 +0200
     1.3 @@ -240,7 +240,7 @@
     1.4    | eval_const _ _ _ _ = NONE; 
     1.5  
     1.6  (*. evaluate binary, associative, commutative operators: *,+,^ .*)
     1.7 -(*("PLUS"    ,("op +"        ,eval_binop "#add_")),
     1.8 +(*("PLUS"    ,("Groups.plus_class.plus"        ,eval_binop "#add_")),
     1.9    ("TIMES"   ,("op *"        ,eval_binop "#mult_")),
    1.10    ("POWER"  ,("Atools.pow"  ,eval_binop "#power_"))*)
    1.11  
    1.12 @@ -278,8 +278,8 @@
    1.13  	case (numeral t1, numeral t2) of
    1.14  	    (SOME n1, SOME n2) =>
    1.15  	    let val (T1,T2,Trange) = dest_binop_typ t0
    1.16 -		val res = calc (if op0 = "op -" then "op +" else op0) n1 n2
    1.17 -		(*WN071229 "HOL.divide" never tried*)
    1.18 +		val res = calc (if op0 = "Groups.minus_class.minus" then "Groups.plus_class.plus" else op0) n1 n2
    1.19 +		(*WN071229 "Rings.inverse_class.divide" never tried*)
    1.20  		val rhs = var_op_float v op_ t0 T1 res
    1.21  		val prop = Trueprop $ (mk_equality (t, rhs))
    1.22  	    in SOME (mk_thmid_f thmid n1 n2, prop) end
    1.23 @@ -293,7 +293,7 @@
    1.24    if op0 = op0' then
    1.25  	case (numeral t1, numeral t2) of
    1.26  	    (SOME n1, SOME n2) =>
    1.27 -	    if op0 = "op -" then NONE else
    1.28 +	    if op0 = "Groups.minus_class.minus" then NONE else
    1.29  	    let val (T1,T2,Trange) = dest_binop_typ t0
    1.30  		val res = calc op0 n1 n2
    1.31  		val rhs = float_op_var v op_ t0 T1 res
    1.32 @@ -314,7 +314,7 @@
    1.33         | _ => NONE)
    1.34    | eval_binop _ _ _ _ = NONE; 
    1.35  (*
    1.36 -> val SOME (thmid, t) = eval_binop "#add_" "op +" (str2term "-1 + 2") thy;
    1.37 +> val SOME (thmid, t) = eval_binop "#add_" "Groups.plus_class.plus" (str2term "-1 + 2") thy;
    1.38  > term2str t;
    1.39  val it = "-1 + 2 = 1"
    1.40  > val t = str2term "-1 * (-1 * a)";
    1.41 @@ -449,8 +449,8 @@
    1.42  (** evaluation on the metalevel **)
    1.43  
    1.44  (*. evaluate HOL.divide .*)
    1.45 -(*("DIVIDE" ,("HOL.divide"  ,eval_cancel "#divide_e"))*)
    1.46 -fun eval_cancel (thmid:string) "HOL.divide" (t as 
    1.47 +(*("DIVIDE" ,("Rings.inverse_class.divide"  ,eval_cancel "#divide_e"))*)
    1.48 +fun eval_cancel (thmid:string) "Rings.inverse_class.divide" (t as 
    1.49  	       (Const (op0,t0) $ Free (n1,t1) $ Free(n2,t2))) thy = 
    1.50      (case (int_of_str n1, int_of_str n2) of
    1.51  	 (SOME n1', SOME n2') =>
    1.52 @@ -523,10 +523,10 @@
    1.53    | list2sum [s] = s
    1.54    | list2sum (s::ss) = 
    1.55      let fun sum su [s'] = 
    1.56 -	    Const ("op +", [HOLogic.realT,HOLogic.realT]--->HOLogic.realT)
    1.57 +	    Const ("Groups.plus_class.plus", [HOLogic.realT,HOLogic.realT]--->HOLogic.realT)
    1.58  		  $ su $ s'
    1.59  	  | sum su (s'::ss') = 
    1.60 -	    sum (Const ("op +", [HOLogic.realT,HOLogic.realT]--->HOLogic.realT)
    1.61 +	    sum (Const ("Groups.plus_class.plus", [HOLogic.realT,HOLogic.realT]--->HOLogic.realT)
    1.62  		  $ su $ s') ss'
    1.63      in sum s ss end;
    1.64  
    1.65 @@ -561,7 +561,7 @@
    1.66  val list_rls = 
    1.67      append_rls "list_rls" list_rls
    1.68  	       [Calc ("op *",eval_binop "#mult_"),
    1.69 -		Calc ("op +", eval_binop "#add_"), 
    1.70 +		Calc ("Groups.plus_class.plus", eval_binop "#add_"), 
    1.71  		Calc ("op <",eval_equ "#less_"),
    1.72  		Calc ("op <=",eval_equ "#less_equal_"),
    1.73  		Calc ("Atools.ident",eval_ident "#ident_"),
    1.74 @@ -591,8 +591,8 @@
    1.75  		Calc ("op =",eval_equal "#equal_"),
    1.76  
    1.77  		Thm  ("real_unari_minus",num_str @{thm real_unari_minus}),
    1.78 -		Calc ("op +",eval_binop "#add_"),
    1.79 -		Calc ("op -",eval_binop "#sub_"),
    1.80 +		Calc ("Groups.plus_class.plus",eval_binop "#add_"),
    1.81 +		Calc ("Groups.minus_class.minus",eval_binop "#sub_"),
    1.82  		Calc ("op *",eval_binop "#mult_")
    1.83  		];
    1.84  
    1.85 @@ -708,10 +708,10 @@
    1.86      ("leq"      ,("op <="       ,eval_equ "#less_equal_")),
    1.87      ("ident"    ,("Atools.ident",eval_ident "#ident_")),
    1.88      ("equal"    ,("op =",eval_equal "#equal_")),
    1.89 -    ("PLUS"     ,("op +"        ,eval_binop "#add_")),
    1.90 -    ("MINUS"    ,("op -",eval_binop "#sub_")),
    1.91 +    ("PLUS"     ,("Groups.plus_class.plus"        ,eval_binop "#add_")),
    1.92 +    ("MINUS"    ,("Groups.minus_class.minus",eval_binop "#sub_")),
    1.93      ("TIMES"    ,("op *"        ,eval_binop "#mult_")),
    1.94 -    ("DIVIDE"  ,("HOL.divide"  ,eval_cancel "#divide_e")),
    1.95 +    ("DIVIDE"  ,("Rings.inverse_class.divide"  ,eval_cancel "#divide_e")),
    1.96      ("POWER"   ,("Atools.pow"  ,eval_binop "#power_")),
    1.97      ("boollist2sum",("Atools.boollist2sum",eval_boollist2sum ""))
    1.98      ]);
    1.99 @@ -724,7 +724,7 @@
   1.100  				rew_ord = ("termlessI",termlessI), 
   1.101  				erls = e_rls, 
   1.102  				srls = Erls, calc = [], (*asm_thm = [],*)
   1.103 -				rules = [Calc ("op +", eval_binop "#add_"),
   1.104 +				rules = [Calc ("Groups.plus_class.plus", eval_binop "#add_"),
   1.105  					 Calc ("op <",eval_equ "#less_")
   1.106  					 (*    ~~~~~~ for nth_Cons_*)
   1.107  					 ],