Fixpoint all_suf_of_labeled_statements (P: labeled_statements -> Prop) (L: labeled_statements): Prop :=
  match L with
  | LSnil => P L
  | LScons _ s L' => P L /\ all_suf_of_labeled_statements P L'
  end.

(* Specifications: *)
Lemma all_suf_self: forall P L, all_suf_of_labeled_statements P L -> P L.
Lemma all_suf_LSnil: forall P L, all_suf_of_labeled_statements P L -> P LSnil.
Lemma all_suf_select_switch: forall P L, all_suf_of_labeled_statements P L -> forall n, P (select_switch n L).