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_strong_proper: forall P1 P2 p1 p2,
(forall x, P1 x <-> P2 x) ->
(forall x, P1 x -> P2 x -> p1 x = p2 x) ->
pred_sepcon p1 P1 = pred_sepcon p2 P2.