End IterSepCon2.
Section IterPredSepCon.
Context {A : Type}.
Context {B : Type}.
Context {ND : NatDed A}.
Context {SL : SepLog A}.
Context {ClS: ClassicalSep A}.
Definition pred_sepcon (p: B -> A) (P: B -> Prop): A :=
EX l: list B, !! (forall x, In x l <-> P x) && !! NoDup l && iter_sepcon p l.

Lemma pred_sepcon_eq: forall (P: B -> Prop) (p: B -> A),
pred_sepcon p P =
(EX l: list B, !! ((forall x, In x l <-> P x) /\ NoDup l) && iter_sepcon p l).