Fixpoint sequence (cs: list statement) s :=
 match cs with
 | nil => s
 | c::cs' => Ssequence c (sequence cs' s)
 end.Fixpoint rsequence (cs: list statement) s :=
 match cs with
 | nil => s
 | c::cs' => Ssequence (rsequence cs' s) c
 end.

(* Specifications: *)
Lemma sequence_rsequence: forall Espec CS Delta P cs s0 s R, @semax CS Espec Delta P (Ssequence s0 (sequence cs s)) R <-> @semax CS Espec Delta P (Ssequence (rsequence (rev cs) s0) s) R.
Lemma seq_assocN: forall {Espec: OracleKind} CS, forall Q Delta P cs s R, @semax CS Espec Delta P (sequence cs Sskip) (normal_ret_assert Q) -> @semax CS Espec Delta Q s R -> @semax CS Espec Delta P (sequence cs s) R.