Section FIND_LABEL.
Variable f: meminj.
Variable cenv: compilenv.
Variable m: mem.
Variables bound tbound: block.
Variable lbl: ident.

Lemma simpl_find_label:
forall s k ts tk,
simpl_stmt cenv s = OK ts ->
match_cont f cenv k tk m bound tbound ->
compat_cenv (addr_taken_stmt s) cenv ->
match find_label lbl s k with
| None =>
find_label lbl ts tk = None
| Some(s', k') =>
exists ts', exists tk',
find_label lbl ts tk = Some(ts', tk')
/\ compat_cenv (addr_taken_stmt s') cenv
/\ simpl_stmt cenv s' = OK ts'
/\ match_cont f cenv k' tk' m bound tbound
end
with simpl_find_label_ls:
forall ls k tls tk,
simpl_lblstmt cenv ls = OK tls ->
match_cont f cenv k tk m bound tbound ->
compat_cenv (addr_taken_lblstmt ls) cenv ->
match find_label_ls lbl ls k with
| None =>
find_label_ls lbl tls tk = None
| Some(s', k') =>
exists ts', exists tk',
find_label_ls lbl tls tk = Some(ts', tk')
/\ compat_cenv (addr_taken_stmt s') cenv
/\ simpl_stmt cenv s' = OK ts'
/\ match_cont f cenv k' tk' m bound tbound
end.