Lines Matching refs:rule
44 | Leaf of rule_type list (* a single rule *)
67 fun relevant_indices(test_set, rule) =
72 (index = fst rule) andalso
73 not (match_constr (List.nth(snd rule, index), name))) test_list
95 (* Eliminate redundant rules in a rule list. *)
130 (* Modify the rule by instantializing it with constructor information. *)
133 fun inst_rule (rule : rule_type, index, subterm) =
134 (#1(rule), List.take(#2 rule, index) @ [subterm] @ List.drop(#2 rule, index + 1))
141 List.foldl (fn (rule, r_rules) =>
142 case List.nth(#2 rule, index) of
144 then r_rules @ [inst_rule(rule, index, Constr x)]
149 r_rules @ [inst_rule(rule, index, Constr (hd (S.listItems s)))]
151 r_rules @ [inst_rule(rule, index, ConS constr_set)]
153 | _ => r_rules @ [inst_rule(rule, index,
166 (* rule indices which label each successor of that test. Given a set of possible tests *)
167 (* tset and a set of live rule indices rset, the relevance heuristic searches for the *)