From compcert Require Export Clightdefs.
Require Export VST.veric.base.
Require Export VST.veric.SeparationLogic.
Require Export VST.msl.Extensionality.
Require Export compcert.lib.Coqlib.
Require Export VST.msl.Coqlib2 VST.veric.coqlib4 VST.floyd.coqlib3.
Require Export VST.floyd.jmeq_lemmas.
Require Export VST.floyd.find_nth_tactic.
Require Export VST.veric.juicy_extspec.
Local Open Scope logic.
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).