  We show that on graphs with n vertices, the 2-dimensional Weisfeiler-Leman
algorithm requires at most O(n^2/log(n)) iterations to reach stabilization.
This in particular shows that the previously best, trivial upper bound of
O(n^2) is asymptotically not tight. In the logic setting, this translates to
the statement that if two graphs of size n can be distinguished by a formula in
first-order logic with counting with 3 variables (i.e., in C3), then they can
also be distinguished by a C3-formula that has quantifier depth at most
O(n^2/log(n)).
  To prove the result we define a game between two players that enables us to
decouple the causal dependencies between the processes happening simultaneously
over several iterations of the algorithm. This allows us to treat large color
classes and small color classes separately. As part of our proof we show that
for graphs with bounded color class size, the number of iterations until
stabilization is at most linear in the number of vertices. This also yields a
corresponding statement in first-order logic with counting.
  Similar results can be obtained for the respective logic without counting
quantifiers, i.e., for the logic L3.
