Corollary FRACTRAN_HALTING_l_0_no_zero_den l : 
            l <> nil -> fractran_regular l -> FRACTRAN_HALTING (l,0) <-> False.

(* Specifications: *)
Lemma FRACTRAN_HALTING_nil_x x : FRACTRAN_HALTING (nil,x) <-> True.
Lemma FRACTRAN_HALTING_l_1_no_zero_den l x : l <> nil -> x <> 0 -> Forall (fun c => fst c <> 0) l -> FRACTRAN_HALTING (l,x) <-> FRACTRAN_HALTING (remove_zero_den l,x).
Lemma FRACTRAN_HALTING_hard p l : p <> 0 -> FRACTRAN_HALTING ((p,0)::l,0) <-> exists x, x <> 0 /\ FRACTRAN_HALTING ((p,0)::l,x).