(** * Aging and operational steps *)

(* Specifications: *)
Lemma jstep_age_sim {C} {csem : @semantics.CoreSemantics C mem} {c c' jm1 jm2 jm1'} :
age jm1 jm2 ->
jstep csem c jm1 c' jm1' ->
level jm2 <> O ->
exists jm2',
age jm1' jm2' /\
jstep csem c jm2 c' jm2'.
Lemma jsafeN__age {G C Z HH Sem Jspec ge ora q n} jm jmaged :
ext_spec_stable age (JE_spec _ Jspec) ->
age jm jmaged ->
le n (level jmaged) ->
@jsafeN_ G Z C HH Sem Jspec ge n ora q jm ->
@jsafeN_ G Z C HH Sem Jspec ge n ora q jmaged.
Lemma jsafeN__age_to {G C Z HH Sem Jspec ge ora q n} l jm :
ext_spec_stable age (JE_spec _ Jspec) ->
le n l ->
@jsafeN_ G Z C HH Sem Jspec ge n ora q jm ->
@jsafeN_ G Z C HH Sem Jspec ge n ora q (age_to l jm).
Lemma m_dry_age_to n jm : m_dry (age_to n jm) = m_dry jm.
Lemma m_phi_age_to n jm : m_phi (age_to n jm) = age_to n (m_phi jm).