Section mm_reco_dio_form.
Variable (HP : mm_recognisable_n).
(* There is a FRACTRAN program simulating R *)
Let FRACTRAN : { l | forall v, P v <-> l /F/ ps 1 * exp 1 v ↓ }.
Local Theorem mm_reco_dio_form : dio_rec_form_n.
End mm_reco_dio_form.
End Various_definitions_of_recursive_enum.
Local Hint Resolve dio_rec_form_elem  dio_rec_elem_single
dio_rec_single_µ_rec  µ_rec_mm_reco
mm_reco_dio_form : core.

Theorem DPRM_n n (R : vec nat n -> Prop) :
(mm_recognisable_n R  -> dio_rec_form_n R)
* (dio_rec_form_n R     -> dio_rec_elem_n R)
* (dio_rec_elem_n R     -> dio_rec_single_n R)
* (dio_rec_single_n R   -> mu_recursive_n R)
* (mu_recursive_n R     -> mm_recognisable_n R).