(** Characterization of [fixpoint_from]. *)
Inductive steps: state -> state -> Prop :=
| steps_base: forall s, steps s s
| steps_right: forall s1 s2 s3, steps s1 s2 -> step s2 = inr s3 -> steps s1 s3.
Scheme steps_ind := Induction for steps Sort Prop.

(* Specifications: *)
Lemma fixpoint_from_charact:
forall start res,
fixpoint_from start = Some res ->
exists st, steps start st /\ NS.pick st.(worklist) = None /\ res = (L.bot, st.(aval)).