Inductive prog_star : state -> prog -> state -> cont -> Prop :=
| star_prog : forall P s k s' k',
    P 0%N = Some k -> star (step P) s k s' k' ->
    prog_star s P s' k'.Inductive prog_star : state -> prog -> state -> cont -> Prop :=
| star_prog : forall P s k s' k',
    P 0%N = Some k -> star (step P) s k s' k' ->
    prog_star s P s' k'.

(* Specifications: *)
Lemma stepN_Ksafe n P (s : state) : stepN (step P) n s Ksafe s Ksafe.
Lemma eval_soundN n k P s h s' h' : eval n k P s h = Some (State s' h') -> exists k', stepN (step P) n (State s h) k (State s' h') k'.
Lemma eval_sound n k P s h s' h' : eval n k P s h = Some (State s' h') -> exists k', star (step P) (State s h) k (State s' h') k'.
Lemma eval_prog_sound n P s h s' h' : eval_prog n P s h = Some (State s' h') -> exists k', prog_star (State s h) P (State s' h') k'.