Section Formula_Decideability.
Definition language_decideable :=
((forall x y : Functions L, {x = y} + {x <> y}) *
(forall x y : Relations L, {x = y} + {x <> y}))%type.
Hypothesis language_dec : language_decideable.
Let nilTermsHelp : forall n : nat, n = 0 -> Terms n.
intros.
induction n as [| n Hrecn].
apply Tnil.
discriminate H.
Defined.
Let consTermsHelp : forall n : nat, Terms n -> Set.
intros.
case n.
exact
(forall p : 0 = n, {foo : unit | eq_rec _ (fun z => Terms z) Tnil _ p = H}).
intros.
exact
(forall p : S n0 = n,
{t : Term * Terms n0 |
eq_rec _ (fun z => Terms z) (Tcons n0 (fst t) (snd t)) _ p = H}).
Defined.

Lemma consTerms :
forall (n : nat) (x : Terms (S n)),
{t : Term * Terms n | Tcons n (fst t) (snd t) = x}.