src/Pure/tactic.ML
changeset 23178 07ba6b58b3d2
parent 22583 4b1ecb19b411
child 23223 7791128b39a9
--- a/src/Pure/tactic.ML	Thu May 31 23:02:16 2007 +0200
+++ b/src/Pure/tactic.ML	Thu May 31 23:47:36 2007 +0200
@@ -51,11 +51,11 @@
   val forward_tac       : thm list -> int -> tactic
   val forw_inst_tac     : (string*string)list -> thm -> int -> tactic
   val ftac              : thm -> int ->tactic
-  val insert_tagged_brl : ('a * (bool * thm)) *
-    (('a * (bool * thm)) Net.net * ('a * (bool * thm)) Net.net) ->
+  val insert_tagged_brl : 'a * (bool * thm) ->
+    ('a * (bool * thm)) Net.net * ('a * (bool * thm)) Net.net ->
       ('a * (bool * thm)) Net.net * ('a * (bool * thm)) Net.net
-  val delete_tagged_brl : (bool * thm) *
-    (('a * (bool * thm)) Net.net * ('a * (bool * thm)) Net.net) ->
+  val delete_tagged_brl : bool * thm ->
+    ('a * (bool * thm)) Net.net * ('a * (bool * thm)) Net.net ->
       ('a * (bool * thm)) Net.net * ('a * (bool * thm)) Net.net
   val lessb             : (bool * thm) * (bool * thm) -> bool
   val lift_inst_rule    : thm * int * (string*string)list * thm -> thm
@@ -410,7 +410,7 @@
 fun orderlist kbrls = untaglist (sort (int_ord o pairself fst) kbrls);
 
 (*insert one tagged brl into the pair of nets*)
-fun insert_tagged_brl (kbrl as (k, (eres, th)), (inet, enet)) =
+fun insert_tagged_brl (kbrl as (k, (eres, th))) (inet, enet) =
   if eres then
     (case try Thm.major_prem_of th of
       SOME prem => (inet, Net.insert_term (K false) (prem, kbrl) enet)
@@ -419,12 +419,12 @@
 
 (*build a pair of nets for biresolution*)
 fun build_netpair netpair brls =
-    foldr insert_tagged_brl netpair (taglist 1 brls);
+    fold_rev insert_tagged_brl (taglist 1 brls) netpair;
 
 (*delete one kbrl from the pair of nets*)
 fun eq_kbrl ((_, (_, th)), (_, (_, th'))) = Thm.eq_thm_prop (th, th')
 
-fun delete_tagged_brl (brl as (eres, th), (inet, enet)) =
+fun delete_tagged_brl (brl as (eres, th)) (inet, enet) =
   (if eres then
     (case try Thm.major_prem_of th of
       SOME prem => (inet, Net.delete_term eq_kbrl (prem, ((), brl)) enet)
@@ -458,12 +458,12 @@
 (*** Simpler version for resolve_tac -- only one net, and no hyps ***)
 
 (*insert one tagged rl into the net*)
-fun insert_krl (krl as (k,th), net) =
-    Net.insert_term (K false) (concl_of th, krl) net;
+fun insert_krl (krl as (k,th)) =
+  Net.insert_term (K false) (concl_of th, krl);
 
 (*build a net of rules for resolution*)
 fun build_net rls =
-    foldr insert_krl Net.empty (taglist 1 rls);
+  fold_rev insert_krl (taglist 1 rls) Net.empty;
 
 (*resolution using a net rather than rules; pred supports filt_resolve_tac*)
 fun filt_resolution_from_net_tac match pred net =