1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677(* This file is free software, part of Zipperposition. See file "license" for more details. *)openLogtk(** {2 Set of active clauses} *)moduletypeS=sigmoduleCtx:Ctx.SmoduleC:Clause_intf.SmoduleCQueue:ClauseQueue.SwithmoduleC=CandtypeC.t=C.t(** Priority queues on clauses *)(** {6 Useful Index structures} *)moduleTermIndex:Index.TERM_IDXwithtypeelt=C.WithPos.tmoduleUnitIndex:Index.UNIT_IDXwithtypeE.t=(Term.t*Term.t*bool*C.t)andtypeE.rhs=Term.tmoduleSubsumptionIndex:Index.SUBSUMPTION_IDXwithtypeC.t=C.t(** {6 Common Interface for Sets} *)moduletypeCLAUSE_SET=sigvalon_add_clause:C.tSignal.t(** signal triggered when a clause is added to the set *)valon_remove_clause:C.tSignal.t(** signal triggered when a clause is removed from the set *)valadd:C.tIter.t->unit(** Add clauses to the set *)valremove:C.tIter.t->unit(** Remove clauses from the set *)endmoduleActiveSet:sigincludeCLAUSE_SETvalclauses:unit->C.ClauseSet.t(** Current set of clauses *)valnum_clauses:unit->intendmoduleSimplSet:CLAUSE_SETmodulePassiveSet:sigincludeCLAUSE_SETvalclauses:unit->C.ClauseSet.t(** Current set of clauses *)valqueue:CQueue.t(** Current state of the clause queue *)valnext:unit->C.toption(** Get-and-remove the next passive clause to process *)valnum_clauses:unit->intend(** {6 Misc} *)typestats=int*int*int(** statistics on the state (num active, num passive, num simplification) *)valstats:unit->stats(** Compute statistics *)valpp:unitCCFormat.printer(** pretty print the content of the state *)valdebug:unitCCFormat.printer(** debug functions: much more detailed printing *)end