Section Canonical_Termination.
Variable (n : nat).
Variable (M : TM n).
Definition Canonical_T : tRel sig n :=
fun t k => exists outc, loopM (M := M) (initc M t) k = Some outc.

Lemma TM_eval_iff (Σ : finType) n (M : TM Σ n) q t q' t' :
TM.eval M q t q' t' <-> exists n, loopM (M := M) (mk_mconfig q t) n = Some (mk_mconfig q' t').