src/Tools/isac/BaseDefinitions/rule-set.sml
changeset 59907 4c62e16e842e
parent 59887 4616b145b1cd
child 59914 ab5bd5c37e13
     1.1 --- a/src/Tools/isac/BaseDefinitions/rule-set.sml	Thu Apr 23 09:29:56 2020 +0200
     1.2 +++ b/src/Tools/isac/BaseDefinitions/rule-set.sml	Thu Apr 23 12:34:54 2020 +0200
     1.3 @@ -17,6 +17,8 @@
     1.4    val keep_unique_rules: string -> T ->  Rule_Def.rule list -> T
     1.5    val merge: string -> T -> T -> T
     1.6    val get_rules: T -> Rule_Def.rule list
     1.7 +(*val rule2rls' : Rule.rule -> string*)
     1.8 +  val id_from_rule : Rule.rule -> string
     1.9  
    1.10    type for_kestore
    1.11    val equal: (''a * ('b * 'c)) * (''a * ('d * 'e)) -> bool
    1.12 @@ -151,11 +153,14 @@
    1.13    | get_rules (Rule_Def.Sequence {rules, ...}) = rules
    1.14    | get_rules (Rule_Def.Rrls _) = [];
    1.15  
    1.16 +fun id_from_rule (Rule.Rls_ rls) = id rls
    1.17 +  | id_from_rule r = raise ERROR ("id_from_rule: not defined for " ^ Rule.to_string r);
    1.18 +
    1.19  (*/------- this will disappear eventually -----------\*)
    1.20  type rrlsstate =  (* state for reverse rewriting, comments see type rule and scr | Rfuns *)
    1.21    (term * term * Rule_Def.rule list list * (Rule_Def.rule * (term * term list)) list);
    1.22  val e_rrlsstate = (UnparseC.term_empty, UnparseC.term_empty, [[Rule_Def.Erule]], [(Rule_Def.Erule, (UnparseC.term_empty, []))]) : rrlsstate;
    1.23 -local
    1.24 +local           
    1.25      fun ii (_: term) = e_rrlsstate;
    1.26      fun no (_: term) = SOME (UnparseC.term_empty, [UnparseC.term_empty]);
    1.27      fun lo (_: Rule_Def.rule list list) (_: term) (_: Rule_Def.rule) = [(Rule_Def.Erule, (UnparseC.term_empty, [UnparseC.term_empty]))];