Section subAllCloseFrom.
Fixpoint closeFrom (a n : nat) (f : fol.Formula L) {struct n} :
fol.Formula L :=
match n with
| O => f
| S m => fol.forallH L (a + m) (closeFrom a m f)
end.
Opaque le_lt_dec.

Lemma reduceSubAll :
forall (T : fol.System L) (map : nat -> fol.Term L) (A B : fol.Formula L),
(forall v : nat, ~ In_freeVarSys L v T) ->
folProof.SysPrf L T (fol.iffH L A B) ->
folProof.SysPrf L T (fol.iffH L (subAllFormula A map) (subAllFormula B map)).