Structure mlibClauseset
(* ========================================================================= *)
(* PROCESSING SETS OF CLAUSES AT A TIME                                      *)
(* Copyright (c) 2002-2004 Joe Hurd.                                         *)
(* ========================================================================= *)
signature mlibClauseset =
sig
type 'a pp  = 'a mlibUseful.pp
type clause = mlibClause.clause
type filter = {subsumption : bool, simplification : int, splitting : bool}
type parameters = {prefactoring : filter, postfactoring : filter}
val defaults              : parameters
val update_subsumption    : (bool -> bool) -> filter -> filter
val update_simplification : (int -> int) -> filter -> filter
val update_splitting      : (bool -> bool) -> filter -> filter
val update_prefactoring   : (filter -> filter) -> parameters -> parameters
val update_postfactoring  : (filter -> filter) -> parameters -> parameters
(* mlibClause sets *)
type clauseset
val empty     : mlibClause.parameters * parameters -> clauseset
val parm      : clauseset -> mlibClause.parameters * parameters
val size      : clauseset -> int
val units     : clauseset -> mlibUnits.units
val rewrites  : clauseset -> mlibClause.rewrs
val clauses   : clauseset -> clause list
val new_units : mlibUnits.units -> clauseset -> clauseset
(* Simplify and strengthen clauses *)
val simplify   : clauseset -> clause -> clause
val strengthen : clauseset -> clause -> clause option
(* Forward subsumption checking *)
val subsumed : clauseset -> clause -> bool
(* Add a clause into the set *)
val add : clause -> clauseset -> clauseset
(* Derive (unfactored) consequences of a clause *)
val deduce : clauseset -> clause -> clause list
(* Factor clauses *)
val factor : clause list -> clauseset -> clause list * clauseset
(* Pretty-printing *)
val pp_clauseset : clauseset pp
end
HOL 4, Kananaskis-10