Remark linearize_body_cons:
forall f pc enum,
linearize_body f (pc :: enum) =
match f.(LTL.fn_code)!pc with
| None => linearize_body f enum
| Some b => Llabel pc :: linearize_block b (linearize_body f enum)
end.

(* Specifications: *)
Lemma find_label_lin_rec:
forall f enum pc b,
In pc enum ->
f.(LTL.fn_code)!pc = Some b ->
exists k, find_label pc (linearize_body f enum) = Some (linearize_block b k).
Lemma find_label_lin:
forall f tf pc b,
transf_function f = OK tf ->
f.(LTL.fn_code)!pc = Some b ->
(reachable f)!!pc = true ->
exists k,
find_label pc (fn_code tf) = Some (linearize_block b k).
Lemma find_label_lin_inv:
forall f tf pc b k,
transf_function f = OK tf ->
f.(LTL.fn_code)!pc = Some b ->
(reachable f)!!pc = true ->
find_label pc (fn_code tf) = Some k ->
exists k', k = linearize_block b k'.