Definition memCP (cp : cartesianPower positive (S (S (S n)))) (s : SS.elt) := memCPAux (S n) cp s.

(* Specifications: *)
Lemma memCPProper : Proper (eq ==> S.Equal==> eq) memCP.
Definition test_coinc (ss : SS.t) (st : STt) (cp : cartesianPower positive (S (S (S n)))) : bool :=
let newss := identify_varieties ss st  in
SS.exists_ (fun s => memCP cp s) newss.
Lemma pick_variety_aux_memCPAux1 : forall s1 s2 m (cp : cartesianPower positive (S (S m))),
pick_variety_auxCP (S.inter s1 s2) cp = true ->
memCPAux m cp s1 = true.
Lemma pick_variety_aux_memCPAux2 : forall s1 s2 m (cp : cartesianPower positive (S (S m))),
pick_variety_auxCP (S.inter s1 s2) cp = true ->
memCPAux m cp s2 = true.