src/Pure/Isar/calculation.ML
changeset 8649 dc496bb0638f
parent 8634 3f34637cb9c0
child 8807 0046be1769f9
equal deleted inserted replaced
8648:7461dc59a818 8649:dc496bb0638f
   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)