Fixpoint LNN2LNT_formula (f : fol.Formula LNN) : Formula :=
match f with
| fol.equal t1 t2 => equal (LNN2LNT_term t1) (LNN2LNT_term t2)
| atomic r ts =>
match
r as l return (fol.Terms LNN (arity LNN (inl _ l)) -> Formula)
with
| LT => fun t0 : fol.Terms LNN (arity LNN (inl _ LT)) => translateLT t0
end ts
| fol.impH A B => impH (LNN2LNT_formula A) (LNN2LNT_formula B)
| fol.notH A => notH (LNN2LNT_formula A)
| fol.forallH v A => forallH v (LNN2LNT_formula A)
end.

Lemma LNN2LNT_freeVarTerm :
forall t : fol.Term LNN,
freeVarTerm LNT (LNN2LNT_term t) = freeVarTerm LNN t.