Fixpoint freeVarListFormula (l : fol.Formulas L) : 
 list nat :=
  match l with
  | nil => nil (A:=nat)
  | f :: l => freeVarFormula f ++ freeVarListFormula l
  end.

(* Specifications: *)
Lemma freeVarListFormulaApp : forall a b : fol.Formulas L, freeVarListFormula (a ++ b) = freeVarListFormula a ++ freeVarListFormula b.
Lemma In_freeVarListFormula : forall (v : nat) (f : fol.Formula L) (F : fol.Formulas L), In v (freeVarFormula f) -> In f F -> In v (freeVarListFormula F).
Lemma In_freeVarListFormulaE : forall (v : nat) (F : fol.Formulas L), In v (freeVarListFormula F) -> exists f : fol.Formula L, In v (freeVarFormula f) /\ In f F.