Section step.
Variable F: State -> A.
Hypothesis HF: forall l: State, P (proj1_sig l ++ F l :: nil).
Fixpoint step (n: nat): State :=
match n with
| 0 => state_nil
| S m => exist _ _ (HF (step m))
end.

Lemma fisrtn_list_step: forall n, fisrtn_list_from_fun (fun n0 : nat => F (step n0)) n = proj1_sig (step n).