src/Pure/Isar/calculation.ML
changeset 7554 30327f9f6b4a
parent 7475 dc4f8d6ee0d2
child 7600 73f91da46230
equal deleted inserted replaced
7553:af3a1fe87c42 7554:30327f9f6b4a
   123   let
   123   let
   124     fun err_if b msg = if b then raise Proof.STATE (msg, state) else ();
   124     fun err_if b msg = if b then raise Proof.STATE (msg, state) else ();
   125     val facts = Proof.the_facts state;
   125     val facts = Proof.the_facts state;
   126     val rules = Seq.of_list (if_none opt_rules [] @ get_local_rules state);
   126     val rules = Seq.of_list (if_none opt_rules [] @ get_local_rules state);
   127 
   127 
   128     fun differ thms thms' = not (Library.equal_lists Thm.eq_thm (thms, thms'));
   128     val eq_prop = op aconv o pairself (#prop o Thm.rep_thm);
       
   129     fun differ thms thms' = not (Library.equal_lists eq_prop (thms, thms'));
   129     fun combine thms =
   130     fun combine thms =
   130       Seq.map Library.single (Seq.flat (Seq.map (Method.multi_resolve (thms @ facts)) rules));
   131       Seq.map Library.single (Seq.flat (Seq.map (Method.multi_resolve (thms @ facts)) rules));
   131 
   132 
   132     val (initial, calculations) =
   133     val (initial, calculations) =
   133       (case get_calculation state of
   134       (case get_calculation state of