Fixpoint composeOptN' {A} (f : A -> option A) n x :=
match n with
| 0 => Some x
| S n =>
match composeOptN' f n x with
| Some y => f y
| None => None
end
end.

Lemma composeOptN_assoc_aux_None {A} (f : A -> option A) n x :
f x = None ->
match composeOptN f n x with
| Some x => f x
| None => None
end = None.