(* now we prove that equality on clausesets is AF *)
(* cs2id: an injection from clausesets to values of type Finite #|clauseset|. enum_rank produces a value of type 'I_(#|clauseset|), where 'I_n is the type of ordinals < n. *)
Program Definition cs2id (s: clauseset) : Finite #|clauseset| :=
@FinIntro #|clauseset| (enum_rank s) _.
Next Obligation. by apply: (ltP (ltn_ord (enum_rank s))). Qed.

(* Specifications: *)
Lemma af_rank_clauseset : almost_full (@eq_op clauseset).
move: (af_cofmap cs2id (af_finite #|clauseset|)).