Notation clauseset := ({set clause}).Canonical Structure clause_ordType := OrdType clause clause_ordMixin.(* c is redundant in S when {d in S | d < c} |= c *)
Definition redund (s: clauseset) (c: clause) := entails (smaller_than s c) c.Definition Trans := TRANS.Make entailsU redundU redundU2 redundD.Notation trans := (Terminate.trans entails redund).

(* Specifications: *)
Lemma wf_trans : well_founded trans.