proposition: Lemma reaches_non_terminating {x y} : reaches x y -> non_terminating y -> non_terminating x.
proof: Proof. move=> [k Hk] Hy k'. have [|->] : k' <= k \/ k' = k + (k' - k) by lia. - by move: Hk => + /steps_k_monotone H /H => ->. - rewrite (steps_plus Hk). by apply: Hy. Qed.
imports: List ssrfun List PeanoNat Lia Operators_Properties ssreflect ssrbool ssrfun