Definition nolabel (s: statement) : Prop :=
  forall k, find_label lbl s k = None.Fixpoint nolabel_list (sl: list statement) : Prop :=
  match sl with
  | nil => True
  | s1 :: sl' => nolabel s1 /\ nolabel_list sl'
  end.

(* Specifications: *)
Lemma nolabel_list_app: forall sl2 sl1, nolabel_list sl1 -> nolabel_list sl2 -> nolabel_list (sl1 ++ sl2).
Lemma makeseq_nolabel: forall sl, nolabel_list sl -> nolabel (makeseq sl).
Lemma makeif_nolabel: forall a s1 s2, nolabel s1 -> nolabel s2 -> nolabel (makeif a s1 s2).
Lemma make_set_nolabel: forall t a, nolabel (make_set t a).
Lemma make_assign_nolabel: forall l r, nolabel (make_assign l r).
Lemma tr_rvalof_nolabel: forall ty a sl a' tmp, tr_rvalof ty a sl a' tmp -> nolabel_list sl.
Lemma nolabel_do_set: forall sd a, nolabel_list (do_set sd a).
Lemma nolabel_final: forall dst a, nolabel_list (final dst a).