equal
deleted
inserted
replaced
128 fun differ thms thms' = not (Library.equal_lists eq_prop (thms, thms')); |
128 fun differ thms thms' = not (Library.equal_lists eq_prop (thms, thms')); |
129 |
129 |
130 fun combine thms = |
130 fun combine thms = |
131 let |
131 let |
132 val ths = thms @ facts; |
132 val ths = thms @ facts; |
133 val rs = NetRules.inserts (if_none opt_rules []) (get_local_rules state); |
133 val rs = get_local_rules state; |
134 val rules = |
134 val rules = |
135 (case ths of [] => NetRules.rules rs |
135 (case ths of [] => NetRules.rules rs |
136 | th :: _ => NetRules.may_unify rs (Logic.strip_assums_concl (#prop (Thm.rep_thm th)))); |
136 | th :: _ => NetRules.may_unify rs (Logic.strip_assums_concl (#prop (Thm.rep_thm th)))); |
137 val ruleq = Seq.of_list rules; |
137 val ruleq = Seq.of_list (if_none opt_rules [] @ rules); |
138 in Seq.map Library.single (Seq.flat (Seq.map (Method.multi_resolve ths) ruleq)) end; |
138 in Seq.map Library.single (Seq.flat (Seq.map (Method.multi_resolve ths) ruleq)) end; |
139 |
139 |
140 val (initial, calculations) = |
140 val (initial, calculations) = |
141 (case get_calculation state of |
141 (case get_calculation state of |
142 None => (true, Seq.single facts) |
142 None => (true, Seq.single facts) |