Section fol_enumerable.
(* Enumeration of FOL formulas *)
Variable (Σ : fo_signature)
(H1 : discrete (syms Σ))
(H2 : discrete (rels Σ))
(H3 : type_enum_t (syms Σ))
(H4 : type_enum_t (rels Σ)).
Let Hunit : opt_enum_t (fun _ : unit => True).
Let Hnat : opt_enum_t (fun _ : nat => True).
Let Hfol_bop : opt_enum_t (fun _ : fol_bop => True).
Let Hfol_qop : opt_enum_t (fun _ : fol_qop => True).

Theorem type_enum_t_fol_form : type_enum_t (fol_form Σ).