src/Tools/isac/Knowledge/Base_Tools.thy
changeset 59773 d88bb023c380
parent 59618 80efccb7e5c1
child 59801 17d807bf28fb
     1.1 --- a/src/Tools/isac/Knowledge/Base_Tools.thy	Fri Jan 17 12:37:21 2020 +0100
     1.2 +++ b/src/Tools/isac/Knowledge/Base_Tools.thy	Fri Jan 17 13:14:11 2020 +0100
     1.3 @@ -58,7 +58,7 @@
     1.4  ML \<open>
     1.5  \<close> ML \<open>
     1.6  val Atools_erls = Rule.append_rls "Atools_erls" Rule.e_rls
     1.7 -  [ Rule.Calc ("HOL.eq", Prog_Expr.eval_equal "#equal_"),
     1.8 +  [ Rule.Num_Calc ("HOL.eq", Prog_Expr.eval_equal "#equal_"),
     1.9      Rule.Thm ("not_true", TermC.num_str @{thm not_true}),
    1.10  		(*"(~ True) = False"*)
    1.11  		Rule.Thm ("not_false", TermC.num_str @{thm not_false}),
    1.12 @@ -79,18 +79,18 @@
    1.13  		Rule.Thm ("order_refl", TermC.num_str @{thm order_refl}),
    1.14  		Rule.Thm ("radd_left_cancel_le", TermC.num_str @{thm radd_left_cancel_le}),
    1.15  		
    1.16 -		Rule.Calc ("Orderings.ord_class.less", Prog_Expr.eval_equ "#less_"),
    1.17 -		Rule.Calc ("Orderings.ord_class.less_eq", Prog_Expr.eval_equ "#less_equal_"),
    1.18 +		Rule.Num_Calc ("Orderings.ord_class.less", Prog_Expr.eval_equ "#less_"),
    1.19 +		Rule.Num_Calc ("Orderings.ord_class.less_eq", Prog_Expr.eval_equ "#less_equal_"),
    1.20  		
    1.21 -		Rule.Calc ("Prog_Expr.ident", Prog_Expr.eval_ident "#ident_"),    
    1.22 -		Rule.Calc ("Prog_Expr.is'_const", Prog_Expr.eval_const "#is_const_"),
    1.23 -		Rule.Calc ("Prog_Expr.occurs'_in", Prog_Expr.eval_occurs_in ""),    
    1.24 -		Rule.Calc ("Prog_Expr.matches", Prog_Expr.eval_matches "")];
    1.25 +		Rule.Num_Calc ("Prog_Expr.ident", Prog_Expr.eval_ident "#ident_"),    
    1.26 +		Rule.Num_Calc ("Prog_Expr.is'_const", Prog_Expr.eval_const "#is_const_"),
    1.27 +		Rule.Num_Calc ("Prog_Expr.occurs'_in", Prog_Expr.eval_occurs_in ""),    
    1.28 +		Rule.Num_Calc ("Prog_Expr.matches", Prog_Expr.eval_matches "")];
    1.29  \<close>
    1.30  
    1.31  ML \<open>
    1.32  val Atools_crls = Rule.append_rls "Atools_crls" Rule.e_rls
    1.33 -  [ Rule.Calc ("HOL.eq", Prog_Expr.eval_equal "#equal_"),
    1.34 +  [ Rule.Num_Calc ("HOL.eq", Prog_Expr.eval_equal "#equal_"),
    1.35      Rule.Thm ("not_true", TermC.num_str @{thm not_true}),
    1.36  		Rule.Thm ("not_false", TermC.num_str @{thm not_false}),
    1.37  		Rule.Thm ("and_true", TermC.num_str @{thm and_true}),
    1.38 @@ -105,27 +105,27 @@
    1.39  		Rule.Thm ("order_refl", TermC.num_str @{thm order_refl}),
    1.40  		Rule.Thm ("radd_left_cancel_le", TermC.num_str @{thm radd_left_cancel_le}),
    1.41  		
    1.42 -		Rule.Calc ("Orderings.ord_class.less", Prog_Expr.eval_equ "#less_"),
    1.43 -		Rule.Calc ("Orderings.ord_class.less_eq", Prog_Expr.eval_equ "#less_equal_"),
    1.44 +		Rule.Num_Calc ("Orderings.ord_class.less", Prog_Expr.eval_equ "#less_"),
    1.45 +		Rule.Num_Calc ("Orderings.ord_class.less_eq", Prog_Expr.eval_equ "#less_equal_"),
    1.46  		
    1.47 -		Rule.Calc ("Prog_Expr.ident", Prog_Expr.eval_ident "#ident_"),    
    1.48 -		Rule.Calc ("Prog_Expr.is'_const", Prog_Expr.eval_const "#is_const_"),
    1.49 -		Rule.Calc ("Prog_Expr.occurs'_in", Prog_Expr.eval_occurs_in ""),    
    1.50 -		Rule.Calc ("Prog_Expr.matches", Prog_Expr.eval_matches "")];
    1.51 +		Rule.Num_Calc ("Prog_Expr.ident", Prog_Expr.eval_ident "#ident_"),    
    1.52 +		Rule.Num_Calc ("Prog_Expr.is'_const", Prog_Expr.eval_const "#is_const_"),
    1.53 +		Rule.Num_Calc ("Prog_Expr.occurs'_in", Prog_Expr.eval_occurs_in ""),    
    1.54 +		Rule.Num_Calc ("Prog_Expr.matches", Prog_Expr.eval_matches "")];
    1.55  \<close>
    1.56  
    1.57  subsection \<open>ONCE AGAIN extend rule-set for evaluating pre-conditions and program-expressions\<close>
    1.58  text \<open>requires "eval_binop" from above\<close>
    1.59  ML \<open>
    1.60  val list_rls = Rule.append_rls "list_rls" list_rls
    1.61 -	[ Rule.Calc ("Groups.times_class.times", (**)eval_binop "#mult_"),
    1.62 -		Rule.Calc ("Groups.plus_class.plus", (**)eval_binop "#add_"), 
    1.63 -		Rule.Calc ("Orderings.ord_class.less", Prog_Expr.eval_equ "#less_"),
    1.64 -		Rule.Calc ("Orderings.ord_class.less_eq", Prog_Expr.eval_equ "#less_equal_"),
    1.65 -		Rule.Calc ("Prog_Expr.ident", Prog_Expr.eval_ident "#ident_"),
    1.66 -		Rule.Calc ("HOL.eq", Prog_Expr.eval_equal "#equal_"),(*atom <> atom -> False*)
    1.67 +	[ Rule.Num_Calc ("Groups.times_class.times", (**)eval_binop "#mult_"),
    1.68 +		Rule.Num_Calc ("Groups.plus_class.plus", (**)eval_binop "#add_"), 
    1.69 +		Rule.Num_Calc ("Orderings.ord_class.less", Prog_Expr.eval_equ "#less_"),
    1.70 +		Rule.Num_Calc ("Orderings.ord_class.less_eq", Prog_Expr.eval_equ "#less_equal_"),
    1.71 +		Rule.Num_Calc ("Prog_Expr.ident", Prog_Expr.eval_ident "#ident_"),
    1.72 +		Rule.Num_Calc ("HOL.eq", Prog_Expr.eval_equal "#equal_"),(*atom <> atom -> False*)
    1.73         
    1.74 -		Rule.Calc ("Prog_Expr.Vars",Prog_Expr.eval_var "#Vars_"),
    1.75 +		Rule.Num_Calc ("Prog_Expr.Vars",Prog_Expr.eval_var "#Vars_"),
    1.76  		
    1.77  		Rule.Thm ("if_True",TermC.num_str @{thm if_True}),
    1.78  		Rule.Thm ("if_False",TermC.num_str @{thm if_False})];
    1.79 @@ -134,8 +134,8 @@
    1.80  	(Rule.Rls {id = "replaced", preconds = [], rew_ord = ("termlessI", termlessI),
    1.81      erls = Rule.Rls {id = "list_elrs", preconds = [], rew_ord = ("termlessI", termlessI), 
    1.82      erls = Rule.e_rls, srls = Rule.Erls, calc = [], errpatts = [],
    1.83 -    rules = [Rule.Calc ("Groups.plus_class.plus", (**)eval_binop "#add_"),
    1.84 -      Rule.Calc ("Orderings.ord_class.less", Prog_Expr.eval_equ "#less_")
    1.85 +    rules = [Rule.Num_Calc ("Groups.plus_class.plus", (**)eval_binop "#add_"),
    1.86 +      Rule.Num_Calc ("Orderings.ord_class.less", Prog_Expr.eval_equ "#less_")
    1.87        (*    ~~~~~~ for nth_Cons_*)],
    1.88      scr = Rule.EmptyScr},
    1.89      srls = Rule.Erls, calc = [], errpatts = [],