diff --git a/src/lib/CoAlgMisc.ml b/src/lib/CoAlgMisc.ml
index 69816014649b025cb7b81cc09e7e45c9517df24e..8688a690e8297a4fa7f86368f9e8f48e83896ce3 100644
--- a/src/lib/CoAlgMisc.ml
+++ b/src/lib/CoAlgMisc.ml
@@ -597,6 +597,8 @@ let setRemoveCnstr set cset = GHtS.remove set cset
 let setIterState fkt set = Array.iter (fun ht -> GHt.iter (fun _ x -> fkt x) ht) set
 let setIterCore fkt set = Array.iter (fun ht -> GHt.iter (fun _ x -> fkt x) ht) set
 let setIterCnstr fkt set = GHtS.iter (fun cset () -> fkt cset) set
+let setLengthState seta = Array.fold_left (fun acc set -> acc + GHt.length set) 0 seta
+let setLengthCore seta = Array.fold_left (fun acc set -> acc + GHt.length set) 0 seta
 
 
 (*****************************************************************************)
diff --git a/src/lib/CoAlgMisc.mli b/src/lib/CoAlgMisc.mli
index de6498688f806bd896b1655b5e776e76a6e006e2..97cc42f8984312326246bd67a572c18399afff30 100644
--- a/src/lib/CoAlgMisc.mli
+++ b/src/lib/CoAlgMisc.mli
@@ -280,6 +280,8 @@ val setRemoveCnstr : setCnstr -> cset -> unit
 val setIterState : (state -> unit) -> setState -> unit
 val setIterCore : (core -> unit) -> setCore -> unit
 val setIterCnstr : (cset -> unit) -> setCnstr -> unit
+val setLengthState : setState -> int
+val setLengthCore : setCore -> int
 
 
 (*****************************************************************************)