Section step.
Variable (state cont : Type).
Variable (step : state -> cont -> state -> cont -> Prop).
Inductive star : state -> cont -> state -> cont -> Prop :=
| star_refl s k : star s k s k
| star_step s k s2 k2 s' k' :
step s k s2 k2 -> star s2 k2 s' k' -> star s k s' k'.
Inductive stepN : nat -> state -> cont -> state -> cont -> Prop :=
| stepO s k : stepN O s k s k
| stepS s k s2 k2 s' k' n :
step s k s2 k2 -> stepN n s2 k2 s' k' ->
stepN (S n) s k s' k'.

Lemma star_stepN s k s' k' :
star s k s' k' <-> exists n, stepN n s k s' k'.