I am following https://github.com/brunofx86/LL/blob/master/FOLL/LL/SyntaxLL.v and there the inductive type is defined (parametrized Higher Order Abstract Syntax - PHOAS is used here):
(** Closed Terms *)
Inductive ClosedT : Term -> Prop :=
| cl_cte: forall C, ClosedT (Cte C)
| cl_fc1: forall n t1, ClosedT t1 -> ClosedT (FC1 n t1)
| cl_fc2: forall n t1 t2, ClosedT t1 -> ClosedT t2 -> ClosedT (FC2 n t1 t2).
My question is - how can I define constant John to be of type ClosedT using constructor cl_cte?
And additional question: there can be situations when I would like to define more types, e.g. John : Person and Bruno : Tortoise so - should I created new type, e.g. ClosedT_Tortoise for the new type? ClosedT is the base type upon which the object logic is built, so, maybe I should not proceed with multisort logic?
As I understand, then this formalization of the Linear Logic which I am using, is applied in the another Coq project http://subsell.logic.at/bio-CTC/ and it may be possible that the constants are defined there. But skimming source I can not find them.