+ let module WeightPassiveSet = Set.Make(WeightOrderedPassives) in
+ let module AgePassiveSet = Set.Make(AgeOrderedPassives) in
+ let add_passive_clause ?(no_weight=false) (passives_w,passives_a) cl =
+ let cl = if no_weight then (0,cl)
+ else Utils.mk_passive_clause cl in
+ WeightPassiveSet.add cl passives_w, AgePassiveSet.add cl passives_a
+ in
+ let remove_passive_clause (passives_w,passives_a) cl =
+ let passives_w = WeightPassiveSet.remove cl passives_w in
+ let passives_a = AgePassiveSet.remove cl passives_a in
+ passives_w,passives_a
+ in
+ let add_passive_clauses (passives_w,passives_a) new_clauses =
+ let new_clauses_w,new_clauses_a = List.fold_left add_passive_clause
+ (WeightPassiveSet.empty,AgePassiveSet.empty) new_clauses
+ in
+ (WeightPassiveSet.union new_clauses_w passives_w,
+ AgePassiveSet.union new_clauses_a passives_a)
+ in
+ let is_passive_set_empty (passives_w,passives_a) =
+ if (WeightPassiveSet.is_empty passives_w) then begin
+ assert (AgePassiveSet.is_empty passives_a); true
+ end else begin
+ assert (not (AgePassiveSet.is_empty passives_a)); false
+ end
+ in
+ let passive_set_cardinal (passives_w,_) =
+ WeightPassiveSet.cardinal passives_w