Fixpoint LNT2LNN_term (t : Term) : fol.Term LNN :=
match t with
| fol.var v => fol.var LNN v
| apply f ts => apply LNN f (LNT2LNN_terms _ ts)
end
with LNT2LNN_terms (n : nat) (ts : Terms n) {struct ts} :
fol.Terms LNN n :=
match ts in (fol.Terms _ n0) return (fol.Terms LNN n0) with
| Tnil => Tnil LNN
| Tcons m s ss => Tcons LNN m (LNT2LNN_term s) (LNT2LNN_terms m ss)
end.

(* Specifications: *)
Lemma LNT2LNN_natToTerm :
forall n : nat, LNT2LNN_term (natToTerm n) = natToTermLNN n.