Section fractran_dio.
Notation "l /F/ x → y" := (fractran_step l x y) (at level 70, no associativity).
(* Fractran step is a diophantine relation, by induction on l *)
(* for fixed n i j, the function v => exp i <v(j),...,v(n-1+j)> has a diophantine representation *)
Let exp_dio n i j : 𝔻F (fun v => exp i (fun2vec j n v)).

Theorem FRACTRAN_HALTING_dio_single E l x : { e : dio_single nat E | l /F/ x ↓ <-> dio_single_pred e (fun _ => 0) }.