proposition: Lemma dio_rel_fractran_stop l x : 𝔻F x -> 𝔻R (fun ν => fractran_stop l (x ν)).
proof: Proof. intros Hx. induction l as [ | (p,q) l IHl ]. + by dio equiv (fun _ => True). abstract(intro v; split; auto; intros _ ?; rewrite fractran_step_nil_inv; auto). + dio by lemma (fun v => fractan_stop_cons_inv p q l (x v)). Defined.
imports: List Arith Undecidability.Shared.Libs(utils_tac utils_list sums rel_iter gcd pos vec) Undecidability.FRACTRAN(FRACTRAN fractran_utils prime_seq) Undecidability.H10.Dio(dio_logic dio_bounded dio_rt_closure dio_single dio_expo)