fact: Definition Halt :{ '(Sigma, n) : finType * nat & TM Sigma n & tapes Sigma n} -> _ := fun '(existT2 (Sigma, n) M tp) => exists (f: mconfig _ (state M) _), halt (cstate f) = true /\ exists k, loopM (mk_mconfig (start M) tp) k = Some f.
imports: Undecidability.L.Datatypes(LOptions) Undecidability.L(Computability.MuRec) Undecidability.TM(TM_facts) Undecidability.L.TM.TMinL.TMinL_extract