Local Open Scope logic_base.
Local Open Scope syntax.
Definition iter_sepcon {L: Language} {sL: SeparationLanguage L} {s'L: SeparationEmpLanguage L} (xs: list expr) : expr := fold_left sepcon xs emp.
Definition iter_wand {L: Language} {sL: SeparationLanguage L} (xs: list expr) (y: expr) : expr := fold_right wand y xs.
Section IterSepconRules.
Context {L: Language}
{minL: MinimunLanguage L}
{pL: PropositionalLanguage L}
{sL: SeparationLanguage L}
{s'L: SeparationEmpLanguage L}
{Gamma: ProofTheory L}
{minAX: MinimunAxiomatization L Gamma}
{ipGamma: IntuitionisticPropositionalLogic L Gamma}
{sGamma: SeparationLogic L Gamma}
{EmpGamma: EmpSeparationLogic L Gamma}.

(* Specifications: *)
Lemma sepcon_iter_sepcon:
forall xs ys,
|-- iter_sepcon xs * iter_sepcon ys <--> iter_sepcon (xs ++ ys).