  Undoing operations is an indispensable feature for many collaborative
applications, mainly collaborative editors. It provides the ability to restore
a correct state of shared data after erroneous operations. In particular,
selective undo allows to undo any operation and is based on rearranging
operations in the history thanks to the Operational Transformation (OT)
approach. OT is an optimistic replication technique allowing for updating the
shared data concurrently while maintaining convergence. It is a challenging
task how to meaningfully combine OT and undo approaches. Indeed, undoing
operations that are received and executed out-of-order at different sites leads
to divergence cases. Even though various undo solutions have been proposed over
the recent years, they are either limited or erroneous.
  In this paper, we propose a constraint-based approach to address the undo
problem. We use Constraint Satisfaction Problem (CSP) theory to devise correct
and undoable transformation patterns (w.r.t OT and undo properties) which
considerably simplifies the design of collaborative objects.
