diff -r 63cecf440235 -r 40eb8aa2b0d6 src/Tools/isac/Knowledge/EqSystem.thy --- a/src/Tools/isac/Knowledge/EqSystem.thy Mon Jun 21 22:08:01 2021 +0200 +++ b/src/Tools/isac/Knowledge/EqSystem.thy Sun Jul 18 18:15:27 2021 +0200 @@ -49,6 +49,8 @@ works for lists of any length, interestingly !?!*) ML \ +val thy = @{theory}; + (** eval functions **) (*certain variables of a given list occur _all_ in a term @@ -65,7 +67,7 @@ end; (*("occur_exactly_in", ("EqSystem.occur_exactly_in", - eval_occur_exactly_in "#eval_occur_exactly_in_"))*) + eval_occur_exactly_in "#eval_occur_exactly_in_") )*) fun eval_occur_exactly_in _ "EqSystem.occur_exactly_in" (p as (Const ("EqSystem.occur_exactly_in",_) $ vs $ all $ t)) _ = @@ -153,8 +155,8 @@ (term_ord' pr thy (Library.swap tu) = LESS);*) (*for the rls's*) -fun ord_simplify_System (pr:bool) thy _(*subst*) tu = - (term_ord' pr thy tu = LESS); +fun ord_simplify_System (pr:bool) thy _(*subst*) (ts, us) = + (term_ord' pr thy (TermC.numerals_to_Free ts, TermC.numerals_to_Free us) = LESS); (**) end; (**) @@ -336,7 +338,9 @@ erls = Rule_Set.Empty, srls = Rule_Set.Empty, calc = [], errpatts = [], rules = [(*for precond NTH_CONS ...*) \<^rule_eval>\less\ (Prog_Expr.eval_equ "#less_"), - \<^rule_eval>\plus\ (**)(eval_binop "#add_") + \<^rule_eval>\plus\ (**)(eval_binop "#add_"), + Rule.Eval ("EqSystem.occur_exactly_in", + eval_occur_exactly_in "#eval_occur_exactly_in_") (*immediately repeated rewrite pushes '+' into precondition !*) ],