proposition: Lemma decision x : terminating x + non_terminating x.
proof: Proof. move: x => [p [a b]]. have [[|]|] := next_small_waypoint p a b; [tauto|tauto|]. move=> [[p' [a' b']]] [/reaches_plus_incl Hp'] [Ha' Hb']. have := small_decider p' a' b' [] Ha' Hb' ltac:(by constructor) ltac:(by constructor). case. - move: Hp' => /reaches_terminating H /H ?. by left. - move: Hp' => /reaches_non_terminating H /H ?. by right. Qed.
imports: List ssrfun List PeanoNat Lia Operators_Properties ssreflect ssrbool ssrfun