Definition CPToSS {m:nat} (cp : cartesianPower positive m) : SS.elt.

(* Specifications: *)
Lemma CPToSSOKAux {m m' : nat} :
forall (cp : cartesianPower positive (S (S m))) (cp' : cartesianPower positive (S (S m'))) e s,
S.Equal (CPToSS cp) s ->
memCPAux m' cp' s = true ->
InCP e cp' ->
InCP e cp.
Lemma CPToSSOK : forall (cp cp' : cartesianPower positive (S (S (S n)))) s,
S.Equal (CPToSS cp) s ->
memCP cp' s = true ->
incl (CPToList cp') (CPToList cp).
Lemma CoappDupPerm {m : nat} :
forall (cp : cartesianPower positive m),
~ List.NoDup (CPToList cp) ->
exists e, exists l, Permutation.Permutation (CPToList (ListToCP (e :: e :: l) e)) (CPToList cp).
Lemma CoappDupAux {m : nat} :
forall (cp : cartesianPower positive (S (S (S m)))),
~ List.NoDup (CPToList cp) ->
exists e, exists (l : list positive), exists m', exists (cp' : cartesianPower positive (S (S (S m')))),
Permutation.Permutation (CPToList cp') (CPToList cp) /\ headCP cp' = e /\ headCP (tailCP cp') = e.
Lemma CoappDup : forall cp interp,
~ List.NoDup (CPToList cp) ->
app coinc (interp_CP cp interp).
Lemma collect_coincs :
forall cp ss interp,
app coinc (interp_CP cp interp) ->
ss_ok ss interp -> ss_ok (SS.add (CPToSS cp) ss) interp.
Lemma collect_wds :
forall cp st interp,
app wd (interp_CP cp interp) ->
st_ok st interp -> st_ok (STadd cp st) interp.