tuned signature: more explicit types;
authorwenzelm
Sat, 05 Jul 2025 14:39:24 +0200
changeset 82806 7189368734cd
parent 82805 61aae966dd95
child 82807 be34513a58a1
tuned signature: more explicit types;
src/Provers/classical.ML
src/Pure/Isar/context_rules.ML
src/Pure/bires.ML
--- a/src/Provers/classical.ML	Sat Jul 05 14:19:45 2025 +0200
+++ b/src/Provers/classical.ML	Sat Jul 05 14:39:24 2025 +0200
@@ -97,7 +97,7 @@
   include BASIC_CLASSICAL
   val classical_rule: Proof.context -> thm -> thm
   type rule = thm * (thm * thm list) * (thm * thm list)
-  type netpair = (int * (bool * thm)) Net.net * (int * (bool * thm)) Net.net
+  type netpair = int Bires.netpair
   val rep_cs: claset ->
    {safeIs: rule Item_Net.T,
     safeEs: rule Item_Net.T,
@@ -217,7 +217,7 @@
 type rule = thm * (thm * thm list) * (thm * thm list);
   (*external form, internal form (possibly swapped), dup form (possibly swapped)*)
 
-type netpair = (int * (bool * thm)) Net.net * (int * (bool * thm)) Net.net;
+type netpair = int Bires.netpair;
 type wrapper = (int -> tactic) -> int -> tactic;
 
 datatype claset =
--- a/src/Pure/Isar/context_rules.ML	Sat Jul 05 14:19:45 2025 +0200
+++ b/src/Pure/Isar/context_rules.ML	Sat Jul 05 14:39:24 2025 +0200
@@ -7,7 +7,7 @@
 
 signature CONTEXT_RULES =
 sig
-  type netpair = ((int * int) * (bool * thm)) Net.net * ((int * int) * (bool * thm)) Net.net
+  type netpair = (int * int) Bires.netpair
   val netpair_bang: Proof.context -> netpair
   val netpair: Proof.context -> netpair
   val orderlist: ((int * int) * 'a) list -> 'a list
@@ -61,7 +61,7 @@
 
 (* context data *)
 
-type netpair = ((int * int) * (bool * thm)) Net.net * ((int * int) * (bool * thm)) Net.net;
+type netpair = (int * int) Bires.netpair;
 val empty_netpairs: netpair list = replicate (length rule_indexes) (Net.empty, Net.empty);
 
 datatype rules = Rules of
--- a/src/Pure/bires.ML	Sat Jul 05 14:19:45 2025 +0200
+++ b/src/Pure/bires.ML	Sat Jul 05 14:39:24 2025 +0200
@@ -1,25 +1,22 @@
 (*  Title:      Pure/bires.ML
     Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
+    Author:     Makarius
 
 Biresolution and resolution using nets.
 *)
 
 signature BIRES =
 sig
-  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 ->
-      ('a * (bool * thm)) Net.net * ('a * (bool * thm)) Net.net
-  val eq_kbrl: ('a * (bool * thm)) * ('a * (bool * thm)) -> bool
+  type rule = bool * thm
+  type 'a netpair = ('a * rule) Net.net * ('a * rule) Net.net;
+  val insert_tagged_brl: 'a * rule -> 'a netpair -> 'a netpair
+  val delete_tagged_brl: rule -> 'a netpair -> 'a netpair
+  val eq_kbrl: ('a * rule) * ('a * rule) -> bool
   val build_net: thm list -> (int * thm) Net.net
   val biresolution_from_nets_tac: Proof.context ->
-    ('a list -> (bool * thm) list) -> bool -> 'a Net.net * 'a Net.net -> int -> tactic
-  val biresolve_from_nets_tac: Proof.context ->
-    (int * (bool * thm)) Net.net * (int * (bool * thm)) Net.net -> int -> tactic
-  val bimatch_from_nets_tac: Proof.context ->
-    (int * (bool * thm)) Net.net * (int * (bool * thm)) Net.net -> int -> tactic
+    ('a list -> rule list) -> bool -> 'a Net.net * 'a Net.net -> int -> tactic
+  val biresolve_from_nets_tac: Proof.context -> int netpair -> int -> tactic
+  val bimatch_from_nets_tac: Proof.context -> int netpair -> int -> tactic
   val filt_resolve_from_net_tac: Proof.context -> int -> (int * thm) Net.net -> int -> tactic
   val resolve_from_net_tac: Proof.context -> (int * thm) Net.net -> int -> tactic
   val match_from_net_tac: Proof.context -> (int * thm) Net.net -> int -> tactic
@@ -28,6 +25,11 @@
 structure Bires: BIRES =
 struct
 
+type rule = bool * thm;  (*eres flag, see Thm.biresolution*)
+
+type 'a netpair = ('a * rule) Net.net * ('a * rule) Net.net;
+
+
 (** To preserve the order of the rules, tag them with increasing integers **)
 
 (*insert one tagged brl into the pair of nets*)