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.