  ***** This design is a duplicate of a Causal Length Set (see notes in the
comments). We leave nonetheless the original paper here because the proofs are
referred to in another submission.*****
  The 2P-Set Conflict-Free Replicated Data Type (CRDT) supports two phases for
each possible element: in the first phase an element can be added to the set
and the subsequent additions are ignored; in the second phase an element can be
removed after which it will stay removed forever regardless of subsequent
additions and removals. We generalize the 2P-Set to support an infinite
sequence of alternating additions and removals of the same element. In the
presence of concurrent additions and removals on different replicas, all
replicas will eventually converge to the longest sequence of alternating
additions and removals that follows causal history.
  The idea of converging on the longest-causal sequence of opposite operations
had already been suggested in the context of an undo-redo framework but the
design was neither given a name nor fully developed. In this paper, we present
the full design directly, using nothing more than the basic formulation of
state-based CRDTs. We also show the connection between the set-based definition
of 2P-Set and the counter-based definition of the $\infty$P-Set with simple
reasoning. We then give detailed proofs of convergence. The underlying
\textit{grow-only dictionary of grow-only counters} on which the $\infty$P-Set
is built may be used to build other state-based CRDTs. In addition, this paper
should be useful as a pedagogical example for designing state-based CRDTs, and
might help raise the profile of CRDTs based on \textit{longest sequence wins}.
