I am trying to implement the following:
Using inductives, t depends on e and vice versa. How can I implement it in Coq? I cannot use e when I haven't yet defined it.
Coq allows mutually inductive types:
Inductive t :=
| Suspend : e -> t
| ...
with e :=
| T : t -> e
| ...
See the reference manual for more details: https://coq.inria.fr/distrib/current/refman/language/cic.html#inductive-definitions