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).

Lemma type_enum_t_fo_term : type_enum_t (fo_term (ar_syms Σ)).